AIP-130 方法

编号130
原文链接AIP-130: Methods
状态批准
创建日期2023-03-13
更新日期2023-03-13

API由若干个方法组成,方法是服务代表消费者执行的特定操作。

指南

方法类别

以下列举了现存的多种方法类别,通常根据方法操作的对象(例如集合或资源)进行分组。

类别名字相关AIP声明式客户端集成CLI/UI集成SDK集成
标准方法
标准集合方法 操作资源集合(LIST、CREATE)AIP-121 AIP-132 AIP-133可自动化可自动化可自动化
标准资源方法 提取或修改单个资源(GET、UPDATE、DELETE)AIP-121 AIP-131 AIP-134 AIP-135可自动化可自动化可自动化
批量资源方法 根据名字提取或修改集合中的多个资源AIP-231 AIP-233 AIP-234 AIP-235可用于优化查询可自动化可自动化
聚合列表方法 提取或修改不同集合中的多个同类型资源AIP-159不实用,无法可自动化可自动化可自动化
自定义提取方法
自定义集合提取方法 从集合中提取无法用标准方法得到的信息AIP-136硬编码可自动化可自动化
自定义资源提取方法 提取无法用标准方法得到的单个资源的信息AIP-136硬编码可自动化可自动化
自定义修改方法
备份资源 保存资源在特定时间点的副本API-162不实用或硬编码可自动化可自动化
恢复资源 将资源设置为特定时间点的版本AIP-162不实用或硬编码可自动化可自动化
重命名资源 修改资源名字或标识,保留配置和数据AIP-136不实用或硬编码可自动化可自动化
自定义集合修改方法 对集合执行标准方法无法实现的命令式操作,修改其中的若干资源(例如状态转换)AIP-136不实用或硬编码可自动化可自动化
自定义资源修改方法 对资源执行标准方法无法实现的命令式修改操作,(例如状态转换)AIP-136不实用或硬编码可自动化可自动化
附加自定义方法
无状态方法 对API中的数据没有永久性影响的方法(例如翻译文本)AIP-136不实用或硬编码可自动化可自动化
其他
流式方法 通过客户端、服务器或双向流进行通信的方法硬编码硬编码可自动化

选择方法类别

在设计方法时,API作者应当按以下顺序选择方法类别:

  1. 标准方法(在集合和资源上)
  2. 标准批量或聚合方法
  3. 自定义方法(在集合或资源上、无状态)
  4. 流式方法

理由

优先推荐面向资源的标准和自定义方法,因为它们可以在最广泛的客户端(声明式客户端、CLI、UI等)中使用,提供最统一的体验,让用户可以将关于一个API的知识应用到另一个。

如果标准方法不合适,自定义方法(挂载于资源或集合上)提供了较低的、但仍有价值的一致性水平,帮助用户理解操作的范围,以及读取哪个对象的配置可以得知操作结果。尽管修改资源的自定义方法的接口不统一,无法与完全面向资源的客户端(如声明式客户端)进行自动化集成,但它们仍然是容易被CLI、UI和SDK识别的模式。

如果完全无法以面向资源的方式表达API,那么它就属于一种缺乏一致性的操作,除了SDK之外,任何客户端都难以对操作进行建模。这种操作往往作为最后的选择,因为用户无法复用他们对类似API的已有知识。同时,与许多客户端的集成也往往需要手动编码。

修订记录

  • 2023-09-05 将状态改为批准。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/68324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

下载Visual Studio Community 2019

官方链接如下:Visual Studio Community 2019下载链接 https://learn.microsoft.com/zh-cn/visualstudio/releases/2019/system-requirements#download 目前官方仅建议2022版,已经关闭vs2019等旧版本,哪天开放了,记得踢我一下。 …

K8s运维管理平台 - xkube体验:功能较多

目录 简介Lic安装1、需要手动安装MySQL,**建库**2、启动命令3、[ERROR] GetNodeMetric Fail:the server is currently unable to handle the request (get nodes.metrics.k8s.io qfusion-1) 使用总结优点优化 补充1:layui、layuimini和beego的详细介绍1.…

JavaScript系列(45)--响应式编程实现详解

JavaScript响应式编程实现详解 🔄 今天,让我们深入探讨JavaScript的响应式编程实现。响应式编程是一种基于数据流和变化传播的编程范式,它使我们能够以声明式的方式处理异步数据流。 响应式编程基础概念 🌟 💡 小知识…

无人机红外热成像:应急消防的“透视眼”

无人机红外热成像:应急消防的“透视眼” 亲爱的小伙伴们,每年一到夏天,应急消防的战士们就像上紧了发条的闹钟,时刻准备应对各种灾害。炎热天气让火灾隐患“蹭蹭”往上涨,南北各地还有防洪救灾、台风、泥石流等灾害轮…

14-6-3C++STL的list

&#xff08;一&#xff09;list的插入 1.list.insert(pos,elem);//在pos位置插入一个elem元素的拷贝&#xff0c;返回新数据的位置 #include <iostream> #include <list> using namespace std; int main() { list<int> lst; lst.push_back(10); l…

【Linux】 冯诺依曼体系与计算机系统架构全解

Linux相关知识点可以通过点击以下链接进行学习一起加油&#xff01;初识指令指令进阶权限管理yum包管理与vim编辑器GCC/G编译器make与Makefile自动化构建GDB调试器与Git版本控制工具Linux下进度条 冯诺依曼体系是现代计算机设计的基石&#xff0c;其统一存储和顺序执行理念推动…

定制Centos镜像

环境准备&#xff1a; 一台最小化安装的干净的系统&#xff0c;这里使用Centos7.9,一个Centos镜像&#xff0c;镜像也使用Centos7.9的。 [rootlocalhost ~]# cat /etc/system-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]# rpm -qa | wc -l 306 [rootloca…

【C++ 动态规划】1024. 视频拼接|1746

本文涉及知识点 C动态规划 LeetCode1024. 视频拼接 你将会获得一系列视频片段&#xff0c;这些片段来自于一项持续时长为 time 秒的体育赛事。这些片段可能有所重叠&#xff0c;也可能长度不一。 使用数组 clips 描述所有的视频片段&#xff0c;其中 clips[i] [starti, end…

EasyExcel写入和读取多个sheet

最近在工作中&#xff0c;作者频频接触到Excel处理&#xff0c;因此也对EasyExcel进行了一定的研究和学习&#xff0c;也曾困扰过如何处理多个sheet&#xff0c;因此此处分享给大家&#xff0c;希望能有所帮助 目录 1.依赖 2. Excel类 3.处理Excel读取和写入多个sheet 4. 执…

字节iOS面试经验分享:HTTP与网络编程

字节iOS面试经验分享&#xff1a;HTTP与网络编程 &#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 目录 字节iOS面试经验分享&#xff1a;HTT…

电力晶体管(GTR)全控性器件

电力晶体管&#xff08;Giant Transistor&#xff0c;GTR&#xff09;是一种全控性器件&#xff0c;以下是关于它的详细介绍&#xff1a;&#xff08;模电普通晶体管三极管进行对比学习&#xff09; 基本概念 GTR是一种耐高电压、大电流的双极结型晶体管&#xff08;BJT&am…

装饰SpringMVC的适配器实现响应自动包装

文章目录 1.common-tool-starter1.目录结构2.ResultWrapper.java 2.common-web-starter1.目录结构2.IgnoredResultWrapper.java 自定义注解&#xff0c;忽略对返回结果的自动包装3.ReturnValueHandlersDecorator.java 对适配器进行扩展的装饰器4.WebAutoConfiguration.java 将装…

如何在Spring Boot项目中高效集成Spring Security

1 Spring Security 介绍 Spring Security 是一个功能强大且高度可定制的安全框架,专为保护基于Java的应用程序而设计。它不仅提供了认证(Authentication)和授权(Authorization)的功能,还支持防止各种常见的安全攻击模式。本文将详细介绍Spring Security的主要特点、功能…

代码随想录算法训练营第三十七天-动态规划-完全背包-377. 组合总和 Ⅳ

这是一道与上一题几乎一样的题目不同点是在上一题是组合&#xff0c;这道题是排列所以就要用先循环背包&#xff0c;内循环为物品来实现排列效果总结&#xff1a; 对纯完全背包&#xff0c;求装满这个背包的最大价值&#xff0c;或者问能不能装满这个背包&#xff0c;那么两层f…

Go优雅实现redis分布式锁

前言 高可用方案一般会部署多实例&#xff0c;会存在对共享资源并发读写的业务&#xff0c;为了保证读写的正确&#xff0c;通常会引入分布式锁&#xff0c;本文将介绍如何使用redis设计一个优雅的Go分布式锁。 设计 redis分布式锁是借助SETNX来实现&#xff0c;可能会遇到一…

HPO3:提升模型性能的高效超参数优化工具

引言 在当今快速发展的数据科学和机器学习领域中&#xff0c;超参数优化&#xff08;Hyperparameter Optimization, HPO&#xff09;是构建高性能模型不可或缺的一环。为了简化这一复杂过程&#xff0c;恒通网络科技团队推出了HPO3模块——一个专为Python开发者设计的强大库&a…

全球AI模型百科全书,亚马逊云科技Bedrock上的100多款AI模型

今天小李哥给大家介绍的是亚马逊云科技上的AI模型管理平台Amazon Bedrock上的Marketplace&#xff0c;这是亚马逊云科技在今年re:Invent发布的一个全新功能&#xff0c;将亚马逊的电商基因带到了其云计算平台&#xff0c;让我们能够通过Amazon Bedrock访问100多种流行、新兴和专…

CentOS7使用源码安装PHP8教程整理

CentOS7使用源码安装PHP8教程整理 下载安装包解压下载的php tar源码包安装所需的一些依赖扩展库安装前的配置修改配置文件1、进入php8的安装包 配置环境变量开机自启启动服务创建软连接常见问题1、checking for icu-uc > 50.1 icu-io icu-i18n... no2、configure: error: Pa…

Ubuntu二进制部署K8S 1.29.2

本机说明 本版本非高可用&#xff0c;单Master&#xff0c;以及一个Node 新装的 ubuntu 22.04k8s 1.29.3使用该文档请使用批量替换 192.168.44.141这个IP&#xff0c;其余照着复制粘贴就可以成功需要手动 设置一个 固定DNS&#xff0c;我这里设置的是 8.8.8.8不然coredns无法…

Jetson Xavier NX (ARM) 使用 PyTorch 安装 Open3D-ML 指南

由于 Jetson 为 ARM64 (aarch64) 的系统架构&#xff0c;所以不能用 pip install 直接安装&#xff0c;需要通过源码编译。 升级系统 JetPack 由于 Open3D-ML 目前只支持 CUDA 10.0 以及 CUDA 11.*&#xff0c;并且 JetPack 的 CUDA 开发环境只有10.2、11.4以及12.2&#xff0…