一起走进多样的API,多样的精彩
随着互联网行业的日益发展,API(Application Programming Interface)这个名词对于绝大多数来说都已不再陌生。然而,实际上,根据不同标准可以划分出不同类型的API。今天,让我们来走进多样的API,多样的精彩。
谁来如何使用这个API?调用电商API商品数据接口
根据使用场景的不同来划分API的类型
公共API (Open API)
对所有开发人员和其他用户公开,限制很小。它们可能需要注册、使用API密钥或OAuth等加密条件才能访问,或者是完全开放的。更侧重于外部用户访问数据或服务。
合作伙伴API (Partner API)
仅对战略合作伙伴开放的API,需要特定的权限才能访问。它们通常通过一个API开发门户开放,开发人员可以在自助模式下访问该门户。
内部API(Private API)
对外部用户隐藏,仅供不同的内部开发团队之间使用,以提高生产率和重用服务。良好的治理过程包括将它们暴露给内部API开发门户,通过内部IAM系统以进行身份验证并允许用户访问权限对应的API集。
组合API(Composite API)
和前三种API不同的是,它们是通过API编排功能构建的。它们允许开发人员在一个调用中访问多个端点。例如,在microservices体系结构模式中,需要来自多个服务的信息来执行单个任务时,则可以通过组合API来实现。
图1 - 不同使用场景下的API分类
Data or Service?
根据访问、处理对象的不同来划分API
数据API(Data API)
为各种数据库或SaaS云提供商提供对底层数据集的CRUD访问。在SaaS连接器或内部数据存储的帮助下,需要这些api来处理来自SaaS应用程序的一些基本数据。
内部服务API(Internal Service API)
包括公开内部服务、反映内部流程的一部分或一些复杂的操作。
外部服务API(External Service API)
用于将第三方服务嵌入到公司现有的服务中,并带来附加价值。
UX API(User Experience API)
利用复合API帮助应用程序开发人员为每个特定设备(台式机、移动设备、平板电脑、VPA、物联网)提供正确的体验。
REST or SOAP?
根据传输协议的不同来划分API
REST(REpresentative State Transfer)
REST API是现代web应用程序的关键部分,必须遵守以下规则:
-
无状态的 (Stateless)
-
统一接口
-
Client-Server匹配
-
缓存响应
-
分层架构 (Layered-Architecture)
SOAP(Simple Object Access Protocol)
第一个标准化应用程序使用网络连接来管理服务的方法。但是SOAP有非常严格的规则和标准, 现在,除了现有的内部部署场景之外,大多数开发人员现在更喜欢倾向于在REST中开发。
RPC(Remote Procedure Call)
最古老和最简单的API类型。目标是让客户机在服务器上执行代码。RPC API是紧密耦合的,因此很难维护或更新它们。
API在任何应用程序的开发中都扮演着关键的角色。REST已经成为构建通过网络通信的应用程序的首选标准。而对于企业来说,随着API数量的增多和调用场景的复杂性,往往会产生“究竟已经开发了多少个API?日活调用量是多少?”或者“我们的数据是否足够安全?”之类的困扰。