预期的 API 客户端。服务器为每个客户端颁发客户端 ID 和客户端密钥以验证自身身份。 每当客户端应用程序想要调用 API 服务器时,它们都会首先使用客户端 ID 和客户端密钥调用受信任的服务器。如果凭证有效,受信任的服务器会生成一个有时间限制的访问令牌,并将其发送到 API 服务器。 当 API 服务器收到访问令牌时,它会使用数字签名验证令牌,以确保令牌是从受信任的服务器生成的。如果是,则 API 服务器接受请求并返回响应。如果不是,则拒绝该令牌。 这种方法的主要好处是它将凭证管理开销外包给第三方。这种方法的典型协议是OpenID Connect、SAML 2.0和OAuth 2.0。 基于 API 信任服务器的身份验证图,其中包含请求并将令牌返回到信任服务器 授权 对 API 客户端进行身份验证后,您需要授权他们给予他们所需的“恰到好处”的访问权限——不多也不少。 例如,假设您构建了一个 API,使用户能够检索员工的详细信息。您可能想要控制每个客户端应用程序应该能够看到的员工属性。
对于工资单应用程序,您可能希望提供员工工资。如果 API 客户端是旅行系统,您可能只想公 瑞典 WhatsApp 号码列表 开姓名和护照号码。 如前所述,有多种方法可以授权 API 客户端,具体取决于您使用的身份验证方法。例如,如果您使用客户端密钥对客户端进行身份验证,则可以为每个 API 密钥分配访问级别。当您收到客户端的API调用时,您可以根据附加的API密钥解析相应的访问级别,并通过后端的业务逻辑代码控制向客户端公开哪些数据。 另一方面,如果您使用基于信任服务器的方法对客户端进行身份验证,则可以要求信任服务器在服务器生成的身份验证令牌中附加一个“角色”给 API 客户端。当 API 客户端向您发送身份验证令牌时,您的服务器 API 将提取它并使用它来解析访问(如前所述)。 加密 在 API 设计中必须考虑的最后一个方面是加密 API 客户端和 API 服务器之间的连接。您可以使用SSL 证书来做到这一点。对客户端-服务器连接进行加密可确保两者之间的任何人都无法侦听通信并窃取数据,这称为中间人攻击。
API最佳实践 如果您使用 API,则应遵循行业最佳实践以确保高质量的产品。下面列出了一些需要考虑的常见要素。 API规格 由于您的 API 将支持特定的输入格式、输出格式和错误消息,因此与 API 客户端协调这些移动部分可能会变得很麻烦。 有几个标准可以解决这个问题。示例包括REST API 的OpenAPI 规范和SOAP 的WSDL 。这些通常在 API 中创建为单独的端点。 客户端可以使用这些端点生成调用 API 所需的客户端代码。这样,您将节省开发人员使用 API 时的时间。 节流 某些 API 可能会产生大量流量,从而降低整体系统性能。 为了解决这个问题,您需要使用节流机制。定义 API 的特定使用限制,例如 200 次调用/分钟。每当您的系统开始接收超过 200 个/分钟的调用时,它就会告诉 API 客户端在发送进一步的请求之前等待。常见的方法是使用 HTTP 错误429 Too Many Requests。 错误代码、日志记录和监控 与任何软件系统一样,您的 API 会因多种原因而出现错误和问题,例如客户端请求格式、连接困难和内部服务器错误。 您需要向 API 客户端返回明确的错误代码,指示发生了什么情况,以便在客户端进行故障排除。您还需要记录和监控这些错误,以便您的运营团队可以解决它们。