OpenAPI 风格

更新时间:

本文为您详细介绍了OpenAPI的RPC风格和ROA风格,在自定义请求体之前,您必须提前知晓要调用的产品接口风格,它决定了如何构造请求体的请求方法(RequestMethod)、请求头(RequestHeader)、请求查询字符串(RequestQueryString)、请求正文(RequestPayload)应该如何设置。

阿里云产品主要使用两种风格定义 OpenAPI :RPC 和 ROA。

RPC风格

RPC(Remote Procedure Call)是一种协议,它允许一个程序调用另一个程序中的函数或方法,就像调用本地函数或方法一样。

RPC风格的接口,客户端和服务器之间的通信是基于函数或方法调用的,而不是基于资源的。客户端向服务器发出请求时,它传递的是函数或方法的参数,而不是资源的标识符。服务器收到请求后,它执行请求中指定的函数或方法,并将结果返回给客户端。

RPC 风格接口允许的 Method:GET/POST。

OpenAPI 为RPC风格的产品:弹性计算服务ECS,关系型数据库RDS,内容分发CDN等。

示例:

http://ecs.aliyuncs.com/?SignatureVersion=1.0&Action=DescribeDedicatedHosts&Format=XML&SignatureNonce=3ee8c1b8-xxxx-xxxx-xxxx-xxxxxxxxx&Version=2014-05-26&AccessKeyId=testid&Signature=OLeaidS1JvxuMvnyHOwuJ%2BuX5qY%3D&SignatureMethod=HMAC-SHA1&Timestamp=2016-02-23T12%3A46%3A24Z&RegionId=cn-hangzhou&Status=Available

ROA风格

REST(Representational State Transfer)是一种架构风格,用于设计 Web 服务。RESTful API 可以让客户端应用通过 HTTP 请求与服务器进行交互,并使用 HTTP 方法(例如 GET、POST、PUT、DELETE)执行 CRUD 操作(创建、读取、更新、删除)。

ROA(Resource-Oriented Architecture)是一种基于资源的架构风格,它是 REST 风格的一种扩展。

ROA风格的接口允许的Method

  1. GET:用于从服务器获取资源,一般不会对服务器上的资源进行修改。

  2. POST:用于将数据发送到服务器以创建新资源,或者用于在服务器上执行某些操作。

  3. PUT:用于更新服务器上的资源。客户端在发送 PUT 请求时,需要提供完整的资源数据。

  4. DELETE:用于从服务器上删除资源。

OpenAPI 为ROA风格的产品:业务实时监控服务 ARMS,批量计算,容器服务,ElasticSearch等。

POST /clusters/test_cluster_id/triggers HTTP/1.1
{
  "x-acs-action":"CreateTrigger",
  "x-acs-version":"2015-12-15",
  "Accept":"application/json",
  "Authorization": "acs testid:D9uFJAJgLL+dryjBfQK+YeqGtoY=",
  "x-acs-signature-nonce":"15215528852396",
  "Date":"Tue 9 Apr 2022 07:35:29 GMT",
  "x-acs-signature-method":"HMAC-SHA1",
  "Content-MD5":"Gtl/0jNYHf8t9Lq8Xlpaqw=="
  "Host":"cs.aliyuncs.com" 
}
{
 	"cluster_id":"test_cluster_id",
 	"project_id":"default/nginx-test",
 	"action":"redeploy",
 	"type":"deployment"
}

如何查看

  1. 访问云产品文档的API参考目录,点击查看API概览文档,内容包含OpenAPI采用的接口风格。

  2. OpenAPI 门户查找对应的接口,在API调试模块,查看 SDK 示例代码,如果里面涉及向headers写入参数的逻辑,说明是 ROA 风格,否则是 RPC 风格。