V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vocalman
V2EX  ›  程序员

企业如何从“API 优先”的策略中获益

  •  
  •   vocalman · 2019-07-19 11:24:47 +08:00 · 1041 次点击
    这是一个创建于 1714 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在过去的几年里,全球 API 经济在以难以置信的速度进行快速地增长。物联网、人工智能、自动驾驶等等众多令人充满期待的技术正蓬勃发展,这也证明了 API 对于如今整个技术圈子的重要性,也预示着在不久的将来它还将变得更加重要。

    在过去的概念中,API 的设计是以使用者为中心进行的,相当于是企业已经开发出了一个有着大量数据的程序,然后以 API 的形式向所有开发者提供服务。然而在近几年,有企业在 WEB 端和移动端的开发方式上有所改变——越来越多的企业选择了“ API 优先”的软件开发策略,而这种策略为他们带来了巨大的优势和潜在的利益。接下来,我们将深入研究“ API 优先”的软件开发策略是什么,为什么企业都会选择这种策略。

    什么是“ API 优先”的开发方式?

    以前,有些企业考虑为其网站、WEB 端应用或移动应用构建 API 的出发点时,通常是将 API 作为集成开发的入口向第三方开发者提供的。但在大多数情况下,API 和应用程序服务往往会被视为两个独立的渠道。所以在进行的过程中,这些企业很快就意识到了,使用这种方式将难以进行测试和同时维护。而为了解决这个问题,我们可以使用一种更好的方法来进行处理——首先构建 API,再在其上构建 WEB 或移动端的应用程序。通过这种方式,我们将得到一个更优质和实用的 API,这样也方便了开发人员进行后续开发。

    总结来说,“ API 优先”的策略意味着在构建项目之前,必须先根据开发人员关注的重点构建 API。“ API 优先”的方法适用于网站开发、移动和 WEB 端应用程序开发,以及 SaaS 软件的开发。应用这种策略,不仅可以帮助企业节省大量的工作时间和精力,也可以为第三方开发者在使用的时候打下坚实的基础。

    构建一个基于云端的应用程序并不简单,需要在一开始就检查代码,然后进入数据库时,对有改动过代码的服务进行优先开发。众多开发团队都必须对具体项目进行前后端协作,而所有这些团队的前后端都有依赖性服务。由于团队内部的开发速度不尽相同,在缺乏指导性框架的情况下,这很大可能会导致出现同步失败的情况发生。

    然而通过“ API 优先”的软件开发方式,团队之间彼此可以很好的协作,不会因为妨碍或篡改了应用程序的内部开发代码,从而导致失败。更重要的是,“ API 优先”的策略也适用于开发生态系统。从 API 的层级就开始启动项目有非常多的优点,接下来我们将对其中一部分进行讨论。 201900719api-first-development-diagram.png

    API 优先战略的好处

    在决定开始构建 API 时,作为项目规划的一个组成部分,我们需要先回答一些关键问题。首先我们必须先确定构建 API 背后的两个要素:确定项目的目标受众到底是谁;我们针对使用者设定了什么样的功能。而在规划阶段确认了这两个要点之后,我们还可以考虑,在进入设计阶段和创建 API 架构前,这种策略还能够给软件开发带来什么好处。

    1.从零开始,轻装上阵

    使用 API 优先的设计最明显的优势就是:不考虑任何现有的 IT 框架,创建 API 和基于 API 的应用程序将变得非常简单。借助 API 优先的策略,所有的项目参与者都可以基于构建的 API,随时随地的进行沟通协作、设计和开发。这意味着开发过程将不受到任何限制,所有的 IT 基础架构都可以随时去适应 API,而不是去改变 API 的标准,这让团队有了一个共同的基础标准。通过这种方式,团队可以很轻松的进行 API 测试,并获得所有相关的返回结果。这确保了最终产物是根据团队整体的设计目标进行开发,并能够为用户提供所需的服务。

    2.高效统一

    越来越多的企业和组织发现,想要提供一个可以在所有设备和平台上能够都顺利执行的程序是非常困难的,这是因为在我们的生活中也产生了越来越多需要不同兼容的设备。API 优先策略使得在 API 层之上构建单个应用程序成为了可能,这让企业在各种不同的平台上为各种应用程序提供服务的同时,能够高效的对兼容性进行支持。除了简化开发工作之外,这种方法也使得所有在平台上维护和更新应用程序的过程变得简单,而不需要考虑这是基于本地或者 WEB 端的移动或非移动平台的日常问题。

    3.快速易懂

    这是 API 的基本特性之一。为了让 API 能够无缝使用,即使使用者没参与到 API 的创建当中,也应该很容易理解 API 的构成。要达到这一特性,就意味着有着清晰而全面的接口文档,以供使用者快速理解和使用。

    API 优先的策略可以非常轻松的呈现结构化文档,文档中应当按照资源类型、标题、请求参数、返回格式等模式进行标准化撰写,这让使用者在查看 API 文档和理解其功能时更加的容易。

    现在,你会发现有许多工具和标准可以支持 API 优先开发。有一个好的 API 编写规范是十分重要的,而现在国内 API 市场虽产品众多,但功能参差不齐,找到一个全面而且稳定的工具很难。我向你推荐使用 EOLINKER 进行 API 管理,清晰的界面让你更好的对文档进行编写、测试、协作,可以直接读取代码注释生成文档,还能快速进行 API 测试等,这有助于企业内部构建一个完整的 API 研发管理系统,对提升企业的 API 管理的开发效率非常有用,对 API 管理、测试等方面有兴趣的小伙伴请点击链接了解下哦!https://www.eolinker.com

    而除了遵循标准化的格式之外,“ API 优先”的设计方法可以在不可避免的情况下,清楚地记录实际与标准情况的偏差情况,以便让团队更好的解决潜在的问题。

    4.快速适应,无惧变化

    尽管许多企业会认为从应用程序的实现中独立处 API 会更加困难,但是采用 API 优先的策略可以很好的将应用程序的实现和 API 开发独立起来。只有在这种情况下,API 才不会是一个滞后的层级,反而是一个独立且重要的规范。

    使用“ API 优先”的策略,将使得程序的开发和优化获得更强的适应能力。随着功能的慢慢增加,我们的应用程序将会在一个非常好的规范下不断的增长,从而增强整体的灵活性,并为后期功能的增加和迭代留出足够的空间。尽管变化和修改是不可避免的,但在实际开发之前做好 API 的规划,会是一个降低变化带来系统受损概率的最好方法。

    5.API 的自立

    在很长一段时间里,“在 API 的基础上可以搭建起一个成功的企业”被认为是妄想而奇怪的想法,因为大家都认为在进行商业交易之前,我们必须要有一个完整的应用程序(软件)作为可售卖的商品。

    而在今天,我们不仅看到了许多使用“ API 优先”策略的企业,甚至是其商业模式就是“ API 就是一切”的企业,例如 Strip、Twilio 等只提供 API 服务作为其唯一的产品的企业。这是 API 在现今越来越受到重视的例子,按照这个趋势继续发展,“ API 优先”策略的普及型和受欢迎程度,很有可能在未来的几年里会达到顶峰。

    综合以上的所有优点,我们不难得出“ API 优先”的软件开发方式确实是一个很不错的主意,但需要注意的是,这并不代表它一点缺点都没有。有一个很明显的问题就在于每一个项目都缺乏实际功能作为依据,这就意味着有可能每天都提出一个全新的 API,但却无法提供其所具备的功能。而这就是“ API 优先”策略为数不多的缺点之一。 20190718-marviq-api-first-scheme.png

    结论

    “ API 优先”的方法是在之前未曾考虑的想法,而如今 API 这个词逐渐地被大家所熟知,因此这种做法将会被更多地采用。当然,我们不能完全改变现在仍然作为主流的“消费者优先”的方式,但随着时间推移,我们可以期待越来越多的公司开始尝试以“ API 优先”的方法,并在此之上不断的改进和优化。

    作者:Rachel Dinkin 原标题:How Companies Benefit From an API-First Approach 原文地址: https://dzone.com/articles/how-companies-benefit-from-an-api-first-approach

    2 条回复    2019-07-22 17:46:02 +08:00
    shawndev
        1
    shawndev  
       2019-07-19 12:33:42 +08:00
    亚马逊应该是 api 优先的典型了吧
    vocalman
        2
    vocalman  
    OP
       2019-07-22 17:46:02 +08:00
    @shawndev 可以说算是了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   986 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:57 · PVG 05:57 · LAX 14:57 · JFK 17:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.