深度理解API-First
API-First是一种开发方法论,提倡在应用程序设计和开发过程中,首先关注、设计和建立API服务。这种方法论的核心理念是,将API当做应用程序的核心,并始终将API作为设计和开发的出发点和中心。
API-First是一种架构思维,将API视为基础设施,利用API可以被复用、扩展、共享和集成的优势,打造API中台。在这个过程中,开发者首先定义和设计API,并确定API的规范、协议、接口等细节,进而构建应用程序的后端功能和操作。再通过API来构建具有可扩展性、灵活性和开放性的应用程序。
API-First是一种企业战略,以产品思维来开发API的方法,它将API的作用视为独立的产品,而不是供其他系统调用的接口。它将API接口直接开放给互联网客户供其调用和集成,从而实现API货币化来赚取收益。该概念与API经济共享一些原则,其中API-First解锁了新的价值来源。
说明:如果还不清楚 API是什么,请先阅读相关文章。
专家们如何理解API-First?
API-first一词似乎没有一个普遍理解的定义。当Postman在2021年API状态报告中询问参与者API首先对他们意味着什么时,前两个答案是:
- “在开发依赖的API、应用程序或集成之前,定义和设计API和底层模式”,占42%
- “在开发依赖于API的应用程序或集成之前开发API”,占31%
虽然这两个定义看起来相似,但有一个细微的区别。第一个优先考虑API设计作为整个系统开发生命周期的一部分,而第二个将API视为开发其他系统的构建块。
Stoplight在他们的博客文章API-First与API Design-First:综合指南中探讨了这种差异。他们发现这两个术语“经常互换使用”,将区别总结为“API优先是将API放在前面和中心位置,API设计优先是创建API本身的过程”。在这方面,API设计优先可以被视为API优先的子集,因此可以作为API优先方法的一部分。
API First提供怎样的能力?
API标准:API First方法强调定义和遵循一致的API标准,以确保API的可靠性和稳定性。通过制定标准的API设计原则、命名约定、接口规范等,可以统一API的使用方式,降低开发者的学习成本,并促进不同系统间的集成和交互。
API规范化:API First方法倡导将API视为核心,并将其规范化。通过制定API文档、API说明和示例,定义API的请求和响应格式、参数规范、错误处理等细节,使得API的使用和开发更加规范和易于理解。这样可以提高开发效率和代码质量,降低沟通和集成的难度。
API扩展:API First方法使得应用程序可以灵活扩展和适应变化。通过定义清晰的API接口和协议,开发者可以更容易地集成新增功能或第三方服务。如果需要新增功能,只需集成相应的API即可,而无需大规模修改原有系统。这种能力增强不仅提升了开发效率,还提高了应用程序的质量、安全性和可维护性。
API资源链接和集成:API First方法鼓励将API作为资源进行链接和集成。通过使用标准的API管理工具和平台,可以方便地管理和调用各类API服务。这样可以实现服务协同,将不同系统或组织内的API集成起来,促进信息共享和业务流程的协调。
为什么使用API-First?
使用API-First方法有以下三个优点:
1、简化学习曲线,无需学习复杂的技术知识:API-First方法将API视为应用程序的核心,开发者可以专注于设计和使用API,无需深入了解复杂的底层技术实现。通过API,开发者可以使用简单的接口来完成复杂的操作,而不必关心具体的实现细节。这简化了开发过程,降低了学习和使用的门槛。
2、面向AI、小程序、轻程序友好,降低框架要求:API-First方法使得应用程序可以更加灵活地与其他技术进行集成。无论是与AI服务进行交互、还是与小程序、轻程序进行通信,都可以通过API来实现。这样一来,开发者可以根据需要选择最适合的技术和框架,而不受限于特定的技术堆栈或框架要求。
3、零信任网络下的最优方案:在零信任网络环境中,安全性至关重要。使用API-First方法可以通过授权和身份验证机制来保护API的访问和数据传输。API可以使用标准的安全协议和加密技术进行通信,确保敏感数据的机密性和完整性。同时,API-First方法还可以实现细粒度的权限控制,根据不同用户或角色对API的访问进行限制,提高系统的安全性和可控性。
1、API-First对开发者的价值
更高的效率:采用”API-First”的开发方式可以使得产品团队更加专注于业务逻辑的开发,提高了整体开发效率。开发者不必在每一次新需求、重构或者增量改进时都重新构建整个应用程序,而是可以简单地更新API,并通过自助式的API文档帮助其他开发者快速调用API,从而降低了重复工作的时间和成本。
更好的协作:通过”API-First”,不同开发者之间的协作变得更加容易。一方面,API本身的定义和文档最大化地减少了沟通和合作障碍,同时也提供了更加清晰和统一的标准。另一方面,API还可以支持版本控制,为不同的开发者提供适当的权限和安全保护,以维护不同团队之间的工作隔离和协作。
更大的灵活性:通过”API-First”方法,开发者可以更容易地创新和设计新的业务模型。API提供了基础设施,允许开发者在应用层面上以不同的方式进行组装、调用和组织数据。这意味着开发者可以在不影响整个应用程序的情况下实现新的功能或者调整数据库结构,而这正是企业需要的灵活性和敏捷性。
2、API-First对企业的价值
提高生产力:采用API-First方法可以在开发过程中提高生产力。首先,通过优先设计和构建API,开发人员在开始编写代码之前就确定了应用程序的外部接口,并让API在整个开发周期中处于核心地位。这样可以降低开发成本、减少重复性工作以及在各团队和合作伙伴间极大地提高开发效率。
提高软件质量:API-First方法通过规范化API设计、制定API文档、定义API错误处理等,使得API传输和使用更加规范化和标准化,从而提高了软件质量。通过相应的测试和监测,可以发现和解决API问题,防止API漏洞被利用,从而保证服务的质量和稳定性。
合规与治理:API-First方法使得企业能够更好地满足面临的法规要求和治理挑战。通过统一API标准和规范,企业可以更好地掌控API的使用情况和数据传输,从而更好地遵守相关的法律和隐私保护规定等。
提供可靠的API安全边界:API-First方法促进了API的安全性,从而建立一个可靠的API安全边界。通过采用标准化的API设计和访问控制方法可确保只有具有相应权限和身份验证的用户才能访问API数据,并保护API数据免受恶意攻击。
API-First的挑战
遵循API优先的方法并不都是积极的,也存在大量挑战。
1、文化冲突
对于缺乏高管级支持的组织来说,采用API优先方法可能很困难。采用API优先需要改变心态,将API视为自己的产品。没有这一点,API将仍然是一个纯粹的战术游戏,范围有限,缺乏必要的战略思维。需要高管级支持,以确保流程、人员配置和文化的任何必要变化都能获得成功所需的支持水平。
2、技术多样化
鉴于API优先方法将API视为独立产品,每个API都有对其技术堆栈的自由选择。这不一定是一件坏事——使用正确的技术来解决问题在很多方面都是有益的。但它也可能导致API之间的技术差异。在这种情况下,构建和维护这些API的开发人员需要更广泛的技能组合。因此,一个组织的人员配置决定将影响劳动力的灵活性和成本,以及开发时间和结果的整体质量。
3、API安全性
实施API-First战略,企业API基本面向互联网开放,这使它们容易受到攻击;此外各种安全政策的加强,企业在开放API时面临数据和隐私泄露方面的风险也在加大。
4、API治理
治理在技术多样性和安全的背景下很重要,它为所面临的挑战提供监督和指导,并在整个API平台上执行标准。如果没有适当的治理,整个API优先概念就会被破坏。
API-First是如何开展?
API-First开发模型的组织需要将API放在优先考虑的位置,并认识到公共、私有和合作伙伴API在组织中的重要作用,还需要了解API生命周期并掌握成为API First所需的工具。
1、确定API的优先级
在编写一行代码之前,开发人员与业务合作,首先设计或构建API,确定API的优先级。API优先意味着专注于API可以为您的业务提供的价值,而不仅仅是争先恐后地交付单个应用程序并创建API作为事后的想法。这种前瞻性的方法允许核心业务被企业的不同部门通过API用于多种用途。
2、确定API的开放范围
基于API-First战略,企业需要确定API的开放范围:私人、合作伙伴和公共API。开放范围不同,企业在后续选择API工具,决定API安全的力度,选择在哪家API市场进行推广等方面有着决定性影响。
3、搭建API中台
无论API的开放范围如何,企业都需要优先搭建API中台,构建API生命周期管理策略,帮助团队在开发具有更高生产力、质量和治理的API时保持一致,以推动API战略的进一步实施。
4、推广API
没有消费者的API不会产生任何价值。因此,确保API消费者获得端到端流程至关重要,使他们能够轻松发现、加入和开始使用API。
成为API-First企业
API-first是软件开发的新模式,其中应用程序被构思和构建为通过API进行内部和外部服务的互联。API-First公司是采用API优先开发模式的组织。
1、为什么成为API-First企业?
企业实施API-First战略,将会受益于网络效应、规模经济和高转换成本。
网络效应:最好的 API-first 业务 具有数据网络效应: 使用产品的客户越多,产品对每个客户的效果越好,因为 API-first 业务可以使用来自一个客户的数据为所有客户改进产品。 例如,每次一家公司使用 Checkr 对某人进行背景调查时,Checkr 都会获得此人的数据,以便下一家公司雇用此人时能从中受益,而且它可以从数百万人中提取模式,从而更快、更便宜地执行更准确的检查。
规模经济 :API-first 公司不仅比新进入者具有规模经济优势,更重要的是,比那些可能只考虑在内部构建功能的客户具有规模经济优势。 由于他们专注于一个类别,并将其开发成本分摊到数千或数百万客户身上,因此他们能够为所有的小优势案例进行构建,这些小优势案例加起来具有很大的优势。
转换成本:记住,公司使用 API-first 产品的一个主要原因是这样做可以让他们安心,因为他们的其他业务已经尽在掌握,这样他们就可以专注于构建自己的差异化点。 即使一家公司认为通过更换供应商可以节省一点钱或获得稍微好一点的体验,这样做也需要优先考虑路线图上的无数事情,而这些事情是业务的核心。
2、如何成为API-First企业?
- 清点您的数据库、应用程序和服务——确切了解您有多少个API,以及哪里缺少API
- 了解您的组织生成API的方法——确定哪些地方存在标准流程,哪些地方不存在
- 定义您的业务领域边界,并将您的组织结构映射到这些边界
- 采用API平台,并对其进行标准化
- 就API优先实践培训您的工程、DevOps和产品管理团队
API-First成功案例
为什么 Shopify 如此依赖 Stripe 呢?
Stripe 是典型的 API-first 公司。 它在幕后做了很多复杂的事情,并以几行代码的形式将其提供给客户,从而将所有的复杂性抽象掉。通过与 Stripe 合作,Shopify 让客户能够无缝地收取付款,然后轻松地管理订阅,然后借钱,现在只需点击几下就可以启动银行账户。Shopify 能够在数月内生产出产品,即便如此,也无法与 Stripe 相比,因为 Stripe 专注于其独特的重点,以及它在幕后所做的所有艰苦、非技术性、监管和银行相关的工作。
Stripe 提供的产品越多,产品越好,Shopify 离开的可能性就越小。为什么会这样?与其雇佣大批工程师,将管理智慧花在核心能力之外的二级产品上,不如付钱给 Stripe 来处理所有这些问题。
独角兽Twilio
Twilio是另一家典型的 API-first 公司。它的营收主要来自API,它的客户Shopify 对 Twilio 日益依赖;Facebook 的 WhatsApp 每年向 Twilio 支付1亿美元用于账户验证。
参考资料
https://www.postman.com/api-first/
https://tyk.io/blog/res-what-is-api-first/
https://www.notboring.co/p/apis-all-the-way-down
API平台成熟度模型