\ 在我们谈论 API-first 开发之前,我们需要了解 API 是什么。
\
应用程序编程接口 (API) 是一种允许两个应用程序交换数据和功能的技术。
\ 假设您有一个电子商务网站,并希望集成 Algolia 的搜索功能。我们的搜索 API 可让您的网站和我们托管的搜索引擎交换数据和功能。
\ 当用户键入查询时,您的网站会向我们的服务器发送请求,而我们的服务器会将响应发回——所有这些都通过 API。这种 API 请求-响应交换是开发人员无需从头开始构建技术即可提供出色搜索和发现体验的方式。
\ API 就在您身边——即使您看不到它们。 Google 通过其 Maps Platform API 共享其地图、导航和本地数据。
\ OpenWeatherMap 为应用程序和网站提供超本地的每分钟降雨数据。 Facebook 允许移动开发人员整合社交联系和个人资料信息。名单还在继续。
\ 那是一个 API,但什么是API 优先的开发方法?
\
API-first 是一种以 API 为中心的软件设计方法。应该可以通过脚本语言执行每个操作,并且每个功能都应该可供其他系统利用。
\ 再一次,如果这听起来很简单,那是因为它是。然而,问题出现了,因为定义变得模糊。通常,当开发人员说他们是 API 优先时,他们只是表示 API 很重要,而不是基础。
API优先开发的核心原则
由于有如此多的开发人员错误地(或者可能部分正确地)使用术语 API 优先,因此很难知道哪些产品是真正的 API 优先,哪些不是。
\ 正是由于这个模糊的定义,我们收集了 API 优先开发方法的五个核心原则。
1. 你的 API 是一个产品
发布 API 很容易。困难的是为公众消费做好准备。这就是仅仅创建 API 和将它们视为产品之间的区别。
\ API 优先的方法要求您考虑开发人员将如何与您的 API 交互,您将如何教育他们了解其功能,您将如何随着时间的推移对其进行维护,使用哪些工具来构建 API,以及您如何将遵守兼容性、安全性和简单性的标准。
\ 公司打造产品时,必须符合行业标准。对于 API,这意味着练习交付高质量软件产品的基础软件设计和开发周期。
\ 产品开发包括前期设计和规范、对等编程、与 API 目标相匹配的技术选择和编程语言支持、云和现场之间的决策、测试和用户研究。
2. 基础设计,而非临时改造
API 优先设计要求开发人员从一开始就考虑 API。然而,很少有人能从零开始工作。
\ 通常,软件公司在构建产品后会尝试采用 API 优先的方法。通常,这意味着在现有平台之上添加 API。
\ 这种方法并非没有优点。它可以提高自动化程度并改进底层功能。但这不是 API 优先的方法。
\ 简单来说,API-first 开发将 API 视为基础。它不是预先构建或固执己见的软件解决方案或体验,而是确保您可以通过 API 访问平台的所有功能。
3. 团队协作和影响
在处理技术主题时,很容易只关注技术。但 API 优先开发不仅仅是技术标准。
\ 这是一种工作和协作的方式。 API 优先的方法不仅仅是关注每个 API 的细节,而是更多地关注您的团队和围绕这些 API 的操作。
\ 实现 API 优先的环境需要产品经理的强有力领导,他既熟悉 API 又具备足够的技术技能。它也需要熟练的开发人员。
\ 尽管开发人员擅长提供卓越的最终用户体验,但创造令人愉快的工程(或开发人员)体验 (DX) 完全是另一项技能。您需要一个客户成功功能来帮助实施和支持现场持续的查询和用户反馈。
4. API-First 支持微服务
开发世界正在大力推动可重用性。正如汽车制造商使用通用零件一样,公司正在从多合一平台转向可重复使用的组件。
\ 例如,在线零售商不是购买一体化电子商务平台,而是采购所有最好的可重用组件(库存管理、结账、支付网关、订单履行等),并将它们组合起来,打造完美定制的企业产品根据他们的情况。
\ 因为您的组件需要相互通信,所以没有 API 就无法拥有微服务。使用 API 优先的方法进行构建可确保其他开发人员可以轻松地将您的 API 与微服务架构和应用程序集成到他们的 API 中。
5. API 合约
我们已经提到,API 优先的方法是由可重用性驱动的。通过创建开放且可访问的 API,公司可以轻松地重用、重新部署和共享功能。
\ 但这说起来容易做起来难。提高可重用性的一种方法是通过一致的 API 描述语言。具体来说,这会创建一个合同,规定 API 的行为方式。
\ 建立合同涉及花费更多时间考虑 API 的设计,并且通常涉及额外的计划和协作。
API 优先在哪里符合 MACH 联盟原则?
到目前为止,我们已经介绍了 API 和 API 优先开发。但两者都不是孤立存在的。它们位于更大的技术生态系统中。这就是为什么您经常听到 API 优先以及其他两个概念: Jamstack 架构和MACH 联盟原则。
\ 例如, Jamstack (Javascript、API 和标记)是构建现代产品的最佳实践的集合。它是关于分离 Web UI 层和后端业务逻辑的。正是这种运动使 MACH 方法成为可能。
\ 但是什么是 MACH 联盟以及 API-first 适合哪些领域?要回答这个问题,缩小范围并询问“谁是 MACH 联盟?”会很有帮助。
\ MACH 联盟是一群独立的科技公司,倡导开放、一流的技术生态系统。像许多人一样,他们认为企业套件已经过时,并建议用“敏捷、灵活、始终保持最新”的 MACH 生态系统来取代它们。
\ 为了创建该生态系统,他们建议公司遵循四项原则:
\
-
微服务:独立开发、部署和管理的单个业务功能。
\
-
API-First :所有功能都通过 API 公开。
\
-
云原生:SaaS 在存储和托管之外利用云,包括弹性扩展和自动更新。
\
-
无头:前端表示与后端逻辑和通道、编程语言分离,最终与框架无关。
\
如您所见,API 优先开发是 MACH 生态系统和企业技术未来的基石。
\ 这就是为什么我们来构建Algolia时,遵循 MACH 原则,构建基于微服务、API 优先设计、云和无头架构的产品。与联盟的其他成员(BigCommerce、Contentful、MongoDB 和 AWS 等)一样,我们正在证明为什么这种方法如此有影响力。
以 API 为先并不容易——但值得
我们解开了什么是 API 优先开发,并探索了它带来的一些优势。
\ 但我们也强调了它的根本性变化。转向 API 优先开发并不像轻按开关。您需要重新思考和重新评估您对产品设计和架构的整个方法。
\ 面对如此重大的变化,企业半途而废或实施零敲碎打的做法也就不足为奇了。
\ 这就是为什么技术领导者需要睁大眼睛开始以 API 为先的转型。当您这样做时,您将获得最大的成功机会并释放 API 优先开发的所有好处。
\
原文: https://hackernoon.com/what-does-it-mean-to-have-an-api-first-approach-to-development?source=rss