API 架构风格演化史:CORBA-XMLRPC(SOAP)-REST-JSONRPC-GraphQL-gRPC

我们先来看一张 Twitter Architecture 2022

API 架构风格演化史:CORBA-XMLRPC(SOAP)-REST-JSONRPC-GraphQL-gRPC_第1张图片

Code First v.s API First 软件开发理念的改变

下图显示了代码优先开发和API优先开发之间的差异。

为什么我们要考虑API优先设计?

API 架构风格演化史:CORBA-XMLRPC(SOAP)-REST-JSONRPC-GraphQL-gRPC_第2张图片

  • 微服务增加了系统的复杂性。

    我们有单独的服务来服务系统的不同功能。尽管这种体系结构促进了职责的脱钩和分离,但我们需要处理服务之间的各种通信。 

    最好在编写代码并仔细定义服务边界之前,仔细考虑系统的复杂性。

  • 独立的职能团队需要说相同的语言。

    专门的功能团队仅负责自己的组件和服务。建议组织通过API设计使用相同的语言。 

    在编写代码之前,我们可以模拟请求和响应以验证API设计。

  • 提高软件质量和开发人员生产力

    由于我们在项目开始时消除了大多数不确定性,因此整体开发过程更加顺畅,并且软件质量得到了极大提高。

    开发人员也对该过程感到满意,因为他们可以专注于功能开发,而不是协商突然的变化。

    在项目生命周期即将结束时有惊喜的可能性降低了。

你可能感兴趣的:(架构师必知必会系列,架构,graphql,后端)