内部和外部 API 的受众和用途有所不同。公司的内部利益相关者使用内部 API 作为其工作角色的一部分。目标是提高内部生产力和效率。外部 API 可以产生收入,将公司品牌打造为开源产品,或者改进 API。
本文讨论内部 API 和外部 API 之间的差异。
公共 API/外部 API
企业使用公共 API为公众提供标准化且安全的接口来访问其数据以构建应用程序。它们向公共利益相关者(例如外部开发人员、第三方供应商和客户)公开,并使用 HTTP 协议通过 Internet 进行访问。外部 API 提供特定的功能或服务,例如访问数据或执行事务。
外部 API 的一些要点:
暴露于公众
不仅仅使用内部 API 来创建用户界面
产生收入或提高品牌知名度
收集使用指标以改进 API
管理后端组件之间的交互
有助于与其他业务应用程序集成
内部API
内部 API 提高运营效率。公司使用内部 API 来访问公司不向公众公开的敏感内部系统和数据。与公共 API 不同,内部 API 的功能是高度特定的,并不适合一般用途。内部 API 很少用于创建用户界面。
公司使用内部 API 作为由不同组织开发团队构建的组件的接口,这些团队在不同的组件上工作。此外,它们使用内部 API 作为允许组件之间进行通信的接口。公司还创建 API 作为独立组件来实现特定功能,而不仅仅是“连接器”。
内部 API 的一些要点:
没有暴露在互联网上
在公司或开发团队内部创建和使用
可以向内部利益相关者提供敏感数据的访问权限
专注于谨慎的功能而不是“一般用途”。
用于连接微服务架构中的组件
处理连接后端服务而不是创建用户界面
公共 API/外部 API – 优点
收入
公共 API 有可能通过向第三方应用程序开发人员公开数据来产生收入。
品牌意识
企业可以通过公开 API 来提高品牌知名度,无论 API 是否产生收入。此外,由于 API 适合一般受众,因此它们的影响范围可以从开发人员扩展到业务利益相关者和公民开发人员。
社区建设
公司可以围绕其公共 API 培育成长中的公司。社区可以建议新功能并为每个版本提供持续的反馈循环。
创新
通过公开您的数据,第三方可以以API 开发人员最初未预期的方式进行创新。第三方开发者可以将您的产品与其他商业应用程序集成,从而丰富您的应用程序生态系统。
可扩展性
API 为第三方访问公司数据提供标准接口。标准界面允许公司扩展规模,而无需花费大量资源来支持新用户。统一的界面还意味着公司不需要创建难以维护的自定义解决方案。
准备好将您的 API 文档提升到新的水平了吗?今天和巴克利布一起!
公共 API/外部 API – 缺点
安全风险
如果公共 API 没有得到充分的监控和保护,就会存在安全风险。虽然可以采取必要的安全措施,但始终存在用户可以利用 API 中的漏洞来访问数据的风险。因此,公司应该有一个透明的流程来报告安全漏洞和执行安全筛查。
对第三方的依赖
使用 API 构建的应用程序的受欢迎程度决定了 API 是否成功。当更多的客户使用 API 时,它的价值和采用率就会增加。
复杂性增加
内部 API 是根据公司的内部需求定制的,而公共 API 必须满足一般受众并支持许多用例和第三方应用程序。
支持与维护
公共 API 需要持续的支持和维护,以确保稳定性、安全性和可靠性。
法律法规合规性
他们必须遵守内部 API 不受的法律和法规合规性要求。保持合规性会增加 API 维护的复杂性。
内部 API – 优点
增强安全性
与公共 API 不同,公司在防火墙后面的内部网络上托管内部 API。因此,您可以将访问权限限制为仅公司内的授权用户和公司使用的应用程序。
更好的控制
内部 API 使公司能够控制谁有权访问组织中的哪些功能和数据。
灵活性
您可以专注于创建满足公司特定需求的 API。
降低成本
内部团队可以创建 API 来解决他们的问题,并通过不采用第三方 API 来节省资金。
内部 API – 缺点
有限的曝光
如果不向公众公开 API,公司就无法利用机会来创收、提高品牌知名度或收集使用指标来改进 API。
有限的资源
私有 API 通常需要更多资源来支持和发展,因为它们不产生收入。公司的盈利产品通常优先于它们,这导致 API 得不到维护和更新。
随着时间的推移,不受支持的内部 API 会失去有效性,因为内部开发人员不再信任他们的输出,并可能选择维护更好的第三方 API 来执行相同的功能。这就是为什么内部 API 应尽可能简单,以便更易于维护。
能见度低
导致资源不足的另一个因素是需要更多的可见性,特别是对业务利益相关者而言。内部开发人员需要向业务利益相关者和管理者传达内部 API 的价值,以便他们能够提供必要的资源来维护它。
有限的用例
他们通常连接对非开发人员利益相关者来说价值较低的后端资源。然而,在业务用户的支持下,内部 API 可以发展以支持组织中的其他类型的用户。
缺乏创新
不向公众公开的内部 API 可能永远不会通过允许第三方以新的和创造性的方式使用它们来充分发挥其潜力。非创新的内部 API 可能会促使开发人员采用类似的公共 API。
什么是 API 管理?
API 管理是指设计、发布、监控和保护开发人员、客户和其他利益相关者用来访问公司软件和数据的应用程序编程接口 (API)。
为什么 API 管理至关重要?
API 管理对于内部 API 和公共 API 都至关重要。然而,在我们展示如何以不同的方式管理它们之前,让我们先回顾一下为什么 API 管理至关重要。
安全
API 管理有助于实施身份验证和访问控制、加密数据以及监控安全性。这些因素可以保护敏感数据并防止未经授权的访问。
可靠性
API 管理通过分析提供有关使用模式、用户行为和性能指标的实时数据,确保 API 的可靠性。因此,公司可以识别潜在问题,例如性能瓶颈和错误,并在它们成为重大问题之前解决它们。
可扩展性
开发人员工具和文档使第三方开发人员可以轻松使用 API。此外,它还具有可扩展性,因为只要有适当的资源,API 就会成为自助服务。
节约成本
提供标准化 API 具有成本效益,因为您无需为每个客户维护自定义集成。
API 管理最佳实践
API 管理涉及几个关键步骤,有助于确保 API 的安全性、可靠性和可扩展性。以下是管理 API 的一些最佳实践。
有效的设计 API
如果您设计的 API 可靠且可扩展,那就最好了。定义端点、数据格式和身份验证是有效 API 设计的一部分。
文档 API
API 用户需要资源来帮助他们理解 API,包括参考文档、概念文档、代码示例、教程和其他开发工具。
测试API
您必须对 API 进行严格的测试,以确保其按预期运行。测试包括功能、性能和验收测试。
发布API
发布将 API 公开给其目标用户,无论是内部还是外部。公共 API 通常使用 API 管理平台来发布,该平台将 API 公开给客户。这些平台为客户提供对文档和开发人员工具等资源的访问,以帮助他们理解和体验 API。
发现 API
人们存在一种误解,认为可发现性仅对公共 API 至关重要。然而,API 必须易于内部和外部利益相关者发现。不幸的是,创建用户界面来搜索和过滤 API 需要的资源比内部 API 通常需要的资源更多。因此,企业应考虑内部 API 是否有可能在未来成为“公共”,如果有,则适当投资于其可发现性。
安全 API
这将有助于实施适当的身份验证和访问控制,以保证 API 的安全。对于公共 API,API 网关通过对用户进行身份验证、加密传输中和静态数据以及监控安全威胁来管理 API 安全。
管理访问权限
您必须实施授权策略来控制谁可以访问您的 API 以及为他们分配哪些权限。
监控API
对于公共 API,您可以利用 API 管理平台的分析来收集有关 API 执行情况的实时使用数据。此类平台可以先发制人地识别问题,例如错误、性能瓶颈和安全威胁。
收集分析
您应该捕获和分析数据,以深入了解使用模式、用户行为和性能指标。因此,您可以利用这些见解来优化性能并改善开发人员体验。
更新API
为了与 API 用户建立信任,您应该定期更新 API,向用户表明您的 API 维护良好并包含反馈。
管理策略:内部 API 与公共 API/外部 API
现在我们已经了解了 API 管理的基础知识,接下来我们来讨论一下内部 API 的管理方式与公共 API 的管理方式有何不同。
身份验证和访问控制
公共应用程序具有更严格的身份验证和访问控制。公共 API 需要集成 OAuth 2.0 等服务来进行身份验证,并且在许多情况下,要求用户注册 API 密钥来识别他们的请求。
文档和开发工具
公共 API 需要开发人员提供更多资源,例如大量文档和开发人员工具。此外,公共 API 通常需要迎合非技术业务利益相关者,而私有 API 通常用于后端服务。
货币化
公共 API 如果用于产生收入,则需要一个货币化模型,而这需要另一个管理层。通常,收费是根据 API 使用情况、分层定价计划或从第三方应用程序产生的部分收入中进行的。
性能和可扩展性
公共 API 必须具有高性能和可扩展性,才能同时处理许多平台用户。另一方面,与公共 API 相比,内部 API 通常仅限于少数用户,因此可以承受较小的压力。
分析和监控
收集分析对于改进公共 API 至关重要,但它又增加了一层复杂性。内部 API 受益于分析,但效果较差。内部 API 更可预测和控制。
记录内部和公共 API/外部 API
编写内部 API 文档与编写公共 API 文档略有不同。
内部 API 文档通常包含更多详细信息,因为它特定于内部开发团队的技能和知识。
广泛的受众阅读外部文档。企业在编写公共 API 文档时会考虑用户不同的技术能力。公共 API 文档中包含的主题(而不包含在内部 API 文档中)包括身份验证要求、速率限制、数据格式和错误代码。
公共 API 文档提供了更多安全注意事项,例如用户身份验证和存储敏感数据。另一方面,内部 API 更安全,不需要与公众交互的架构。因此,重点更多地放在如何使用API来连接内部系统组件。
企业将公共 API 文档发布到开发门户,该门户提供在线资源以帮助公众了解可用的 API。内部 API 文档传统上是使用 Swagger 等工具发布的,并且只能在公司的内部网上获取。
公共和内部API 文档在提供的详细信息量、提供的安全信息以及文档的访问方式方面有所不同。
总结
API 是公共的还是内部的取决于其受众和使用情况。每个都有优点和缺点,企业在开发 API 时必须权衡。
公共 API 有潜力创造收入、提高品牌知名度、促进社区建设和创新,并以牺牲安全性、增加复杂性以及持续支持和维护为代价来提高可扩展性。
私有 API 提供增强的安全性、提高的运营效率、更多的访问控制和更大的灵活性,但代价是暴露程度有限、资源减少、可见性有限,并且对更广泛的受众来说实用性较低。
最终,公共 API 具有与公众进行反馈循环以改进它们的优势。
克服内部 API 的“缺点”需要公司优先考虑这些功能的维护以及产生收入的产品如何依赖它们。内部 API 需要宣传它们值得投入资源,以获得业务利益相关者和管理者的支持。企业在分配资源时应考虑API未来是否有可能公开。
准备好将您的 API 文档提升到新的水平了吗?今天和Baklib一起!