阿里云OpenAPI是云服务对外暴露的操作入口,所有形态的服务集成最终都是为了能够成功调用OpenAPI。
什么是OpenAPI?
API(应用程序编程接口)是一种允许应用程序之间相互通信的标准接口。API 允许开发者在多个不同的应用程序之间共享数据、功能和服务,使开发者更容易地实现连接两个应用程序之间的功能,也使开发人员可以更轻松地开发和扩展应用程序。
OpenAPI是阿里云官方推出的API,旨在为开发者提供一种安全、稳定、高效的方式来集成阿里云,包括云服务器、数据库、存储、消息队列、安全服务等。
OpenAPI遵循阿里云的规范,提供了丰富的接口定义,包括接口名称、出入参数定义、错误码、Endpoint等。同时,OpenAPI还提供多种编程语言和开发框架的SDK,方便开发者快速构建与阿里云相关的应用程序,包括Java、Python、Node.js、Go等。通过API接口获取数据、控制服务器、管理权限等,实现对阿里云资源的全面控制和管理。
调用 OpenAPI
作为开发者,调用一个 API 接口,我们通常需要关注以下重点信息:
调用地址(网关)
是否需要登录
是否需要授权
调用方式
返回结果
调用阿里云 OpenAPI 亦是如此。下图是用户从客户端发起一个 OpenAPI 调用请求到接收来自阿里云服务响应数据的完整时序图。
用户发起HTTP请求,调用业务服务端提供的接口。例如:该指令为查询某个ECS的实例状态。
业务服务端接收到用户从业务客户端的请求,校验接口参数合法性,根据 OpenAPI 接口文档组织请求参数、并对请求进行签名。
说明如果使用阿里云 SDK 调用 OpenAPI ,则无需对请求进行签名,SDK 内部已封装请求签名逻辑。
业务服务端发起请求访问 OpenAPI 网关的服务接入点。
OpenAPI 网关接收到业务服务端请求,校验签名和合法性,解析调用身份,并进行鉴权。
鉴权通过后,将该请求转发到对应云产品的内部服务地址。
云产品接收到来自网关的转发请求,根据请求指令操作具体的云资源,返回执行结果。
OpenAPI 网关接收到来自云产品的返回数据,并进行标准输出格式转换,返回给业务服务端。
业务服务端接收到 OpenAPI 网关的返回数据,对结果进行处理,并将结果返回给业务客户端。
基本概念
服务接入点
服务接入点(Endpoint)是指客户端可以使用的云产品在网关注册的服务地址。服务接入点通常是一个 URL,它指定了服务的访问协议、主机名、端口和路径等信息,客户端可以使用这些信息与云服务进行通信。
身份、凭据、鉴权
阿里云的 OpenAPI 分为两种:
匿名 OpenAPI ,对于匿名 OpenAPI ,不需要额外的认证流程,只要请求是符合 OpenAPI 的风格,则可以顺利调用。
需要身份认证的 OpenAPI ,对于需要身份认证的 OpenAPI ,网关需要识别请求凭证,确认调用发起人的身份,身份通过权限校验后,才会将请求转发到对应云服务,否则会直接拒接该请求。
调用方式
为了更好的支持开发者,阿里云提供多种方式调用 OpenAPI ,主要的方式有:使用阿里云控制台,集成阿里云 SDK、使用阿里云 CLI、使用资源编排、使用Terraform、自行实现 HTTP 请求等。
官方推荐您使用阿里云 SDK调用 OpenAPI 。