OpenAPI 是阿里云产品提供的开放应用程序接口,是除了控制台外,主要的服务形式之一。开发者可以通过编程的方式来使用阿里云产品提供的服务,相比于控制台,使用 OpenAPI 具有规模化、自动化、定制化的优势,是将业务和云服务集成的不二选择。
阿里云为开发者提供了多种编程语言(Java、C#、Go、Python、Node.js/TypeScript、PHP、C++ 等)的 SDK、CLI 来简化 OpenAPI 的使用过程。同时,对于一些特殊的场景,比如资源编排,阿里云提供了 Terraform、ROS CDK 等工具。这些 SDK 和工具都是基于 OpenAPI 的能力而构建。
云服务实际上是指由云产品提供的 OpenAPI 服务。但云服务不等同于云产品,因为一个云产品可能会提供多种云服务,如 RAM(访问控制)这个产品,按能力的不同,它提供了 2 种云服务,STS(令牌服务)、IMS(身份管理服务)。
阿里云的云服务涵盖了不同领域,如计算、存储、网络、机器学习、通信、DevOps 等等。
管理类 指开发者主要通过 OpenAPI 进行资源管理类操作。如 ECS、SLB、VPC、RDS、OSS 等,大部分 IaaS 产品提供此类服务。
能力类 指开发者主要通过 OpenAPI 来使用云产品的能力。如短信服务、邮件推送等流量产品,机器翻译、人脸识别等机器学习产品提供此类服务。
支持类 支持类云服务是指一些偏横向支持性的服务。比如账单、权限、审计等产品提供此类服务。
云服务不一定只属于某个分类。以 OSS 为例,它的部分 API 属于管理类,部分则属于能力类。
跟控制台的要求一样,在云服务之前,也需要先开通服务,否则会报“服务未开通”的错误。为了适应 OpenAPI 的自动化需求,有的云服务是免开通的,有的则是提供了用于开通的 OpenAPI。
不论是什么类型的部署,云服务都提供了 Endpoint 作为 OpenAPI 的入口。
对于中心化部署,它的 Endpoint 为 <service code>.aliyuncs.com 的形式。以 IMS 为例,它的 Endpoint 是 ims.aliyuncs.com 。
对于区域化部署,它的 Endpoint 为 <service code>.<region id>.aliyuncs.com 的形式。以 STS 为例,它在杭州的 Endpoint 为 sts.cn-hangzhou.aliyuncs.com ,在北京的 Endpoint 为 sts.cn-beijing.aliyuncs.com
云服务会在不同时期,推出不同的 OpenAPI 分组,因此一个云服务下会存在多个 OpenAPI 分组的情况。比如 ECS 提供的主要 OpenAPI 分组是 2014-05-26 ,它代表在这个时期推出的一批 OpenAPI。不同时期推出的 OpenAPI 分组可能存在延续性,也可能不存在延续性。
在过去,这种分组也被理解为是 OpenAPI 组的版本,但实际上这个日期版本号仅代表 OpenAPI 分组的时期,起到辨识的作用。而与真正版本化概念并不是一回事,真正的版本化是每次变更都会涉及到版本号的变化,而这里的 Date Version 只是标识作用。
云服务的 OpenAPI 也主要是围绕资源来提供各种操作,如创建、查询、修改、删除等。
一个具体的 OpenAPI 归属于一种具体的操作类型。比如 DescribeRegions,是相对 Region 这种资源类型的查询(列表)操作。
我们在 OpenAPI 开发者门户上对每一个 OpenAPI 标识了它的具体操作类型。这些操作类型在 OpenAPI 调用审计(ActionTail)上,也有体现。
一组 OpenAPI 有属于自己的设计风格。一种设计风格包含的内容有 URL 的设计,参数的形式,传输格式等。业界常见的 RESTful 就是一种典型的设计风格,利用 HTTP Method 作为动词,URL 中的路径作为资源,JSON 格式作为传输格式,是它的主要特点。
OpenAPI 风格的不同,影响 SDK 对它的封装形式。阿里云官方提供的 SDK,尽量封装了不同风格带来的细节。
阿里云的 OpenAPI 分为两种,一种是匿名 OpenAPI,一种是需要身份认证的 OpenAPI。对于匿名 OpenAPI,不需要额外的流程,只要请求是符合 OpenAPI 的风格,则可以顺利调用。
对于需要身份认证的 OpenAPI,其调用过程相对复杂,涉及到身份、认证、权限三个概念。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。