API样式那里有几种公开远程API的流行方法: ·远程过程调用(RPC)API公开一组过程或可由客户端通过网络连接调用的函数。RPC风格的设计类似于正常的过程调用,就好像API是本地提供的一样。RPCAPI通常使用紧凑的二进制格式来发送消息,并且非常高效,但通常需要客户端安装与单个API配合使用的特定库(称为存根)。Google的gRPC框架(https://)是现代RPC方法的一个示例。较旧的SOAP(简单对象访问协议)框架使用XML来传递消息,仍然得到广泛部署。 ·RPC风格的一个变体称为远程方法调用(RMI)使用面向对象的技术来允许客户端调用远程对象上的方法,就好像它们是本地对象一样。RMI方法曾经非常流行,采用CORBA和企业Java Bean(EJB)通常用于构建大型企业系统。这些框架的复杂性导致其使用量下降。 ·REST(代表性状态转移)风格由Roy Fielding开发,用于描述导致HTTP和Web成功的原则,后来被改编为API设计的一套原则。与RPC相比,RESTfulAPI强调标准消息格式和少量通用操作,以减少客户端与特定API之间的耦合。随着API随着时间的推移而发展,使用超链接来导航API可以降低客户端崩溃的风险。 ·一些API主要关注大型数据集的高效查询和过滤,例如SQL数据库或Facebook的GraphQL框架(https://)。在这些情况下,API通常只提供少数操作,并且复杂的查询语言允许客户端对返回的数据有很大的控制权。 不同的API风格适合不同的环境。例如,采用微服务架构的组织可能会选择高效的RPC框架来减少API调用的开销。这是适当的,因为组织控制此环境中的所有客户端和服务器,并且可以在需要时管理新存根库的分发。另一方面,广泛使用的公共API可能更适合使用广泛使用的格式(例如JSON)的REST风格,以最大限度地提高与不同类型客户端的互操作性。 微服务架构中的定义,应用程序被部署为松散耦合服务的集合,而不是单个大型应用程序或整体。每个微服务都会公开一个可供其他服务交互的API。后面,我们会结合搜集整理的资料,探讨有关保护微服务API的安全的知识。 SOAP API和REST APISOAP 和 REST 是实现 API 的两种流行方法。 是一种基于XML的消息传递协议,用于在计算机之间交换信息。SOAP的内置WS-Security标准使用XML 加密、XML签名和SAML令牌来处理事务消息传递安全注意事项。SOAP还支持OASIS和W3C建议。与使用其他API实现(例如 REST)相比,SOAP的内置标准和信封式有效负载传输需要更多开销。然而,需要更全面的安全性和合规性的组织可能会从使用SOAP中受益。 使用 HTTP 来获取数据并在远程计算机系统上执行操作。它支持SSL认证和HTTPS以实现安全通信。REST使用JSON标准来使用API有效负载,简化了浏览器上的数据传输。REST是无状态的——每个HTTP请求都包含所有必要的信息,这意味着客户端和服务器都不需要保留任何数据来满足请求。与SOAP不同,SOAP需要对每个请求进行解析和路由才能在本地Web服务上运行,而REST利用标准HTTP请求,并且不需要重新打包数据。 |
参考来源:API 安全实践
|