广义上讲,API(应用程序编程接口)是执行特定任务并定义一组可供其他人用来执行该任务的协议的代码模块。然而,在当今世界,API 已不仅仅是工具,现在存在着巨大且不断增长的代码经济,可以轻松地将其放入应用程序中以执行离散任务。有效的API 管理策略可以增强开发人员体验、提高软件质量、降低开发费用、实现系统可扩展性并强化安全措施。
如果您的组织管理 API 并考虑将该 API 向公众开放,无论是作为货币化还是品牌知名度策略,确保 API 得到良好管理至关重要。组织外部的用户期望获得良好的体验,并且您必须准备好通过 API 提供这种体验。
这就是可靠的API 管理策略发挥作用的地方。制定有效的 API 管理策略计划包含三个主要组成部分:确定有效 API 管理的领域、决定是否需要 API 管理工具以及应使用哪种类型的工具,以及选择该工具。
有效的 API 管理涉及监督您的企业或外部用户将使用的 API 的各个方面。这包括性能、安全性、授权、文档、分析和可访问性。
网关/访问API 网关是公共服务和后端服务之间的层。这是传入请求将被拦截并路由到 API 的正确部分的地方。您应该利用缓存、速率限制和节流以及响应捆绑来确保用户的速度和一致性。
性能目标可用性、速度和可靠性是任何面向公众的 API 的关键方面。您必须能够保证用户一定的正常运行时间,并能够在发生崩溃或停机时保护和恢复用户数据。确定 API 的目标。
安全性/授权类型安全性不仅对于保护您的服务器很重要,而且对于保护敏感的客户端数据也很重要。您的 API 策略应包括由 API 密钥、客户端证书或 OAuth 策略保护的策略。即使您的 API 提供非私有数据,它处理的网络请求仍然应该受到保护。
身份验证/策略管理授权后,身份验证和策略管理对于建立用户角色和团队访问以及管理身份和权限非常重要。这通过限制哪些资源可供哪些用户使用来增强安全性,并改进用户的组织。
开发者门户/文档直观的开发者门户和良好的文档对于良好的 API 管理也至关重要。您的开发人员门户应包括一个沙箱(开发人员可以在其中测试您的端点)、一个概述组织内所有可用 API 的 API 目录,以及包含入门和执行常见任务指南的清晰、可搜索的文档。
分析您的分析将为您提供有关人们如何使用您的 API 的宝贵见解,这将使您能够将资源集中在最有利可图的领域。此外,分析通常对您的用户很有用。
API 管理解决方案可以为您处理一项或多项任务。解决方案通过代理、代理或混合方法提供。
代理代理解决方案位于 API 及其用户之间。代理提供诸如缓存之类的好处,可以优化性能并保护 API 免受突然流量激增的影响。然而,代理可能会增加成本以及与隐私和延迟相关的担忧。此类代理实现的示例包括 Apigee、Mashape 和 Mashery。
代理代理是与您的服务器无缝运行的插件。与代理不同,它们不会干扰 API 调用。因此,它们不会引入网络延迟或外部依赖性。然而,实现缓存等功能可能具有挑战性。此类实现的一个示例是 3scale。
混合要获得两种实现的优点,您可以组合使用代理和代理。例如,您可以选择代理来处理缓存,同时使用代理进行身份验证。 Apigee 和 3scale 等公司正在转向混合解决方案。
一些顶级API 管理工具包括:
确定哪种解决方案适合您需要评估您的预算、现有资源(即您内部可从事此工作的人员)、您的需求以及 API 的预期规模。
我可以在内部管理我的 API,还是应该聘请外部帮助?
这完全取决于你。如果您的组织足够大,可以专门组建一个团队来进行 API 管理,那么您也许可以自己处理。但 API 管理是一项复杂且专业的任务,不应简单地交给公司其他领域已经超负荷工作的工程师。