实现 API 调用接口

实现 API 调用接口

API 简介

API 的概念

API(Application Programming Interface)html

应用程序编程接口是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一次例程的能力,而又无需访问源码或理解内部工做机制的细节。web

API 的特色

  • 一个明肯定义的接口,能够为其余软件提供特定服务。
  • 能够小到只包含一个单独的函数,也能够大到包含数以百计的类、方法、全局函数、数据类型、枚举类型和常量等。
  • 能够小到只包含一个单独的函数,也能够大到包含数以百计的类、方法、全局函数、数据类型、枚举类型和常量等。
  • API 的实现是私有的,也能够是开源的。

API 的分类

  • 面向对象语言的 API编程

    例:Java API 列表json

  • 库与框架的 API后端

    例:Windows API、Windows DirectXapi

  • API 与协议数组

    例:LDAP 应用程序接口服务器

  • API 与设备接口app

    例:PC BIOS 调用接口、ASPI for SCSI 设备接口框架

  • Web API

    例:Google 地图 API、新浪微博 API、阿里云 API 市场

为何要使用 API

  • 快速扩展功能
  • 避免“造轮子”,提升开发效率
  • 下降模块之间的耦合度

API的请求与认证

Web API 协议及 HTTP 请求

好处:客户端与服务端的开发语言无关,利于微服务和分布式的开发。

  • 客户端向服务器发送一个请求
  • 服务器给客户端一个响应,告诉客户端是否能够完成它请求的工做

HTTP请求包含的内容

URL(API调用地址)、请求方式、Headers(请求头)、Body(请求主体)

  • Headers(请求头)

    提供了请求的元信息,是一个简单的项目列表,其中有客户端发送请求的时间和请求主体的大小、身份认证等信息。

  • Body(请求主体)

    包含了客户端但愿发送给服务器的数据。

API 请求方式

常见的主要有四种:

  • GET 请求服务器获取一个资源
  • POST 请求服务器建立一个新的资源
  • PUT 请求服务器编辑或更新一个已存在的资源
  • DELETE 请求服务器删除一个资源

返回状态码

  • 成功调用 API 后会有返回一个状体码,例如成功返回 2xx;
HTTP 状态码 含义
200 OK - [GET] 服务器成功返回用户请求的数据
204 NO CONNTENT - [DELETE] 用户数据删除成功
... ...
  • 未调用成功,会返回 5xx 表示服务不可用;

    例如:500 API 网关内部错误/底层服务错误;503 服务不可用,504 后端服务超时。

返回数据格式

  • json 格式(多采用)

    • 表示对象,键值对类型

      {"name":"a","age":20}
    • 表示数组,采用方括号

    • 以下:

{
    "code":2000,
    "data":[
        {
            "name":"a",
            "age":19
        },
        {
            "name":"b",
            "age":20
        }
    ]
}
  • xml 格式
<?xml version="1.0" encoding="utf-8" ?>
<country>
    <name>中国</name>
    <province>
        <name>河南</name>
    </province>
    <province>
        <name>广州</name>
    </province>
</country>

API 身份认证及签名认证

  • API 有不一样的认证方式

再阿里云中,有两种认证方式

  • 简单认证,基于 APPCODE 方式

    若是 APPCODE 获取 API 访问权限

    • 请求头 Header 添加 Authorization 字段;
    • 配置 Authorization 字段的值为 “APPCODE + 半角空格 + APPCODE 值”

    例子:

    Authorization:APPCODE 123456789ABC
  • 签名认证方式,AppKey & AppSecret

    AppKey 和 AppSecret 至关于当前帐户的另一套帐号和密码机制,再控制台找到对于的 AppKey 和 AppSecret

    具体使用方式在调用时会有官网介绍。

API 调试和调用(阿里云)

API 调试

阿里云 api 市场提供在线调试功能

API 调用步骤

获取 api 文档--建立应用--获取受权--调用 api

调用 API

调用 api 三个基础条件:

  • api
  • 应用 app
  • api 和 app 的权限关系

API 调用注意事项

  • 每一个帐号下 APP 的个数上限为10个,app 名称应用为帐号下惟一
  • 调用 api 的流控限制为,单个 ip,qps 不超过100
  • 用户有权操做购买的 api 与 app 的受权和解除受权.由服务提供方受权给你的 app 的api,用户无权操做解除受权
  • 请求须要包含签名信息