API调用方式有哪些? -问答-阿里云开发者社区-阿里云

开发者社区> 小天使爱美> 正文

API调用方式有哪些?

2020-03-25 14:25:15 553 2

API调用方式有哪些?

API
取消 提交回答
全部回答(2)
  • 天枢2020
    2020-03-25 14:52:07

    看是什么样的接口:

    http

    rpc

    0 0
  • 小天使爱美
    2020-03-25 14:30:53

    公共请求参数

    公共请求参数是指每个接口都需要使用到的请求参数。 参数名称 说明 选项 Authorization 用于验证请求合法性的认证信息,采用 AccessKeyId:Signature 的形式。 必须 Content-Length RFC 2616 中定义的 HTTP 请求内容长度。 必须 Content-Type RFC 2616 中定义的 HTTP 请求内容类型。 必须 Content-MD5 HTTP 协议消息体的 128-bit MD5 散列值转换成 BASE64 编码的结果。为了防止所有请求被篡改,建议所有请求都附加该信息。 必须 Date 请求的构造时间,目前只支持 GMT 格式。如果与 MNS 的服务器时间前后差异超过 15 分钟将返回本次请求非法。 必须 Host 访问 Host 值,例如:cr.cn-hangzhou.aliyuncs.com。 必须 Accept 客户端需要的返回值类型,支持 application/json 和 application/xml。 必须 x-acs-version API 版本号。参见 API版本。 必须 x-acs-region-id 地域(Region)指的是容器镜像所在的物理位置。参见 地域列表。 必须 x-acs-signature-nonce 唯一随机数,用于防止网络重放攻击。您在不同请求间要使用不同的随机数值。 必须 x-acs-signature-method 用户签名方式,目前只支持 HMAC-SHA1。 必须 示例

    GET /namespaces HTTP/1.1
    Authorization: acs ACSbW2iBbyX1Pk9N:mp/6Wdr18V3qAc5gbgsqMe/iB0c
    Content-Length: 0
    Content-Type: application/json;charset=utf-8
    Date: Wed, 23 May 2018 12:00:01 GMT
    Host: cr.cn-hangzhou.aliyuncs.com
    Accept: application/json
    x-acs-version: 2016-06-07
    x-acs-region-id: cn-hangzhou
    x-acs-signature-nonce: f63659d4-10ac-483b-99da-ea8fde61eae3
    x-acs-signature-version: 1.0
    x-acs-signature-method: HMAC-SHA1
    User-Agent: cr-sdk-python/3.0.0 (Darwin/15.2.0/x86_64;2.7.10)
    

    公共返回

    您发送的每次接口调用请求,无论成功与否,系统都会返回一个唯一识别码 RequestId。 示例

    XML 示例:

    <?xml version="1.0" encoding="UTF-8"?>
    <接口名称+Response>
      <!--返回请求标签-->
      <RequestId>4C467B38-3910-447D-87BC-AC049166F216</RequestId>
      <!--返回结果数据-->
    </接口名称+Response>
    

    JSON 示例:

    {
        "RequestId": "4C467B38-3910-447D-87BC-AC049166F216"
        /* 返回结果数据 */
    }
    

    地域列表 地域名称 所在城市 RegionId 华北1 青岛 cn-qingdao 华北2 北京 cn-beijing 华北3 张家口 cn-zhangjiakou 华北5 呼和浩特 cn-huhehaote 华东1 杭州 cn-hangzhou 华东2 上海 cn-shanghai 华南1 深圳 cn-shenzhen 香港 香港 cn-hongkong 亚太东北1 东京 ap-northeast-1 亚太东南1 新加坡 ap-southeast-1 亚太东南2 悉尼 ap-southeast-2 亚太东南3 吉隆坡 ap-southeast-3 亚太东南5 雅加达 ap-southeast-5 亚太南部1 孟买 ap-south-1 美国东部1 弗吉尼亚 us-east-1 美国西部1 硅谷 us-west-1 中东东部1 迪拜 me-east-1 欧洲中部1 法兰克福 eu-central-1 金融云地域列表 地域名称 所在城市 RegionId 华东2 (上海金融云) cn-shanghai-finance-1

    接入地址

    阿里云容器镜像的 Open API 接入地址为 cr.{regionId}.aliyuncs.com。具体 RegionId 参见地域列表 通信协议

    支持通过 HTTP 或 HTTPS 通道进行请求通信。为了获得更高的安全性,推荐您使用 HTTPS 通道发送请求。 请求方法

    使用 HTTP 的 PUT、 POST、 GET、 DELETE 等 HTTP Method 发送不同的请求。 请求参数

    每个请求都需要包含公共请求参数和指定 API 所特有的请求参数。 请求编码

    请求及返回结果都使用UTF-8字符集进行编码。

    调用 API 后返回数据采用统一格式,返回的 HTTP 状态码为 2XX,代表调用成功;返回 4XX 或 5XX 的 HTTP 状态码代表调用失败。

    调用成功返回的数据格式主要有 XML 和 JSON 两种。外部系统可以在请求时,传入参数来制定返回的数据格式。默认为 XML 格式。

    API 文档中的返回示例为了便于查看,做了格式化处理,实际返回结果没有进行换行、缩进等处理。 签名

    API 签名包含两部分:公共请求头(HTTP 协议 Header 参数和阿里云协议 Header 参数)和 CanonicalizedResource(规范资源),Body 不计入签名。

    Access Key ID和Access Key Secret由阿里云官方颁发给访问者(可以通过阿里云官方网站申请和管理),其中Access Key ID用于标识访问者的身份;Access Key Secret是用于加密签名字符串和服务器端验证签名字符串的密钥,必须严格保密,只有阿里云和用户知道。

    系统会对每个访问的请求进行验证,每个提交的请求都需要在请求中包含签名(Signature)信息。系统通过使用Access Key ID和Access Key Secret进行对称加密的方法来验证请求的发送者身份。如果计算出来的验证码和提供的一样,即认为该请求是有效的;否则请求将被拒绝处理,并返回 HTTP 403 错误。

    请求要求将签名包含在 HTTP Header 中,格式为 Authorization: acs [Access Key Id]:[Signature]。 签名计算方法

    签名计算方法如下:

    Signature = base64(hmac-sha1(VERB + "\n"
                + ACCEPT + "\n" +
                + Content-MD5 + "\n"
                + Content-Type + "\n"
                + Date + "\n"
                + CanonicalizedHeaders + "\n"
                + CanonicalizedResource))
    
    VERB 表示 HTTP 的 Method。比如示例中的 PUT。
    Accept 客户端需要的返回值类型,支持 application/json 和 application/xml。
    Content-MD5 表示请求内容数据的 MD5 值。
    Content-Type 表示请求内容的类型。
    Date 表示此次操作的时间,不能为空,目前只支持 GMT 格式。如果请求时间与服务器时间相差超过 15 分钟,系统会判定此请求不合法,并返回 400 错误。比如示例中的 Thu, 17 Mar 2018 18:00:00 GMT。
    CanonicalizedHeaders 表示 HTTP 中以 x-acs- 开始的字段组合。
    CanonicalizedResource 表示 HTTP 所请求资源的 URI (统一资源标识符)。比如 /namespaces。
    

    CanonicalizedHeaders

    CanonicalizedHeaders(即以 x-acs- 开头的 Header)在签名验证前需要符合以下规范:

    将所有以 x-acs- 为前缀的 HTTP 请求头的名字转换成小写字母。比如将 X-ACS-Meta-Name: TaoBao 转换为 x-acs-meta-name: TaoBao。阿里云规范请求头的名字是大小写不敏感的,建议全部使用小写。
    如果一个公共请求头的值部分过长,则需要处理其中的 \t、\n、\r、\f分隔符,将其替换为英文半角的空格。
    将上一步得到的所有 HTTP 阿里云规范头按照字典序进行升序排列。
    删除请求头和内容之间分隔符两端出现的任何空格。比如将 x-acs-meta-name: TaoBao,Alipay 转换为 x-acs-meta-name:TaoBao,Alipay。
    将所有的头和内容用 \n 分隔符分隔拼成最后的 CanonicalizedHeaders。
    

    CanonicalizedResource

    CanonicalizedResource 表示客户想要访问资源的规范描述,需要将子资源和 qurey 一同按照字典序,从小到大排列并以 & 为分隔符生成子资源字符串(? 后的所有参数)。

    http://cr.cn-hangzhou.aliyuncs.com/repository?name=repository1&namespace=namespace1
    

    CanonicalizedResource 应该为:

    /repository?name=repository1&namespace=namespace1
    

    版本

    更新时间:2018-05-23 13:28:07 API 版本 说明 2016-06-07 提供命名空间、仓库、镜像仓库等API

    0 0
添加回答
相关问答

3

回答

请教一个范围查询的问题

小文文文 2019-06-14 14:37:01 115040浏览量 回答数 3

10

回答

【精品问答合集】Hbase热门问答

hbase小能手 2019-05-29 14:37:26 120244浏览量 回答数 10

35

回答

AliDDNS基于云解析API的DDNSC

dtsdao 2016-07-23 20:07:29 87731浏览量 回答数 35

52

回答

oss4wp —— 阿里云OSS for Wordpress插件[2013-4-24更新]

enj0y 2012-07-22 02:01:46 54225浏览量 回答数 52

17

回答

OSS 官方帮助文档 在此归类发布 ,常见问题基本能在这里找到答案。

asky8 2013-07-11 00:38:19 51261浏览量 回答数 17

28

回答

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2015-12-03 00:39:14 92879浏览量 回答数 28

82

回答

OSS入门教程

belle.zhoux 2014-07-07 17:14:27 149389浏览量 回答数 82

20

回答

【Java学习全家桶】1460道Java热门问题,阿里百位技术专家答疑解惑

管理贝贝 2018-05-31 13:57:45 45094浏览量 回答数 20

62

回答

磁盘原地扩容功能4月22日正式上线

艳馨 2015-04-21 23:40:33 96087浏览量 回答数 62

21

回答

OSS新手视频教程!

聚小编 2013-01-14 18:09:51 57990浏览量 回答数 21
0
文章
3151
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载