REST API开发-什么是合同第一?

在本文中,我们将探讨一种开发基于合同的REST API的方法。

开发良好的REST API时,拥有出色的微服务很重要。 合同优先法将帮助您在实施之前制定好的合同。 但是,这并不是那么简单!


你会学


  • 什么是开发REST API的合同优先方法?
  • 合同优先方法的好处是什么?
  • 合同优先法的缺点是什么?
  • 您何时使用“合同优先”方法?

REST API


这是有关REST API的系列文章中的第三篇:


Web服务概念


有几种类型的Web服务,包括REST和SOAP。 对于每种服务,都有:

  • 提供服务的服务提供商
  • 使用它的服务的使用者

消费者必须知道所提供服务的详细信息。 因此,必须签订合同。 服务合同定义:

  • 服务的来龙去脉是什么?
  • 服务可通过哪个URL获得?
  • 如何发送授权?

合同优先法


使用“ 合同第一 ”方法(合同第一),您首先定义合同,然后实施服务。 让我们来看一个例子。

WSDL


首先让我们看一下Web服务定义语言WSDL的使用。 这是一个用法示例:



WSDL通常与SOAP / XML Web服务一起使用。 在这种情况下,通常定义:



合同是什么意思?


当我们开始订立合同时,我们定义WSDL,然后与我们的使用者共享。 即使在我们引入服务并将其提供之前,所有这一切都可能发生。

合同告诉消费者如何期望请求和响应的交换。 签订合同后,服务提供商便可以提供与合同一致的服务。 服务使用者可以开发应用程序以供其使用。

合同优先法的好处


团队可以并行发展


由于编码是基于合同的,因此服务提供商和消费者群体会清楚地了解交流的方式和细节。 因此,开发可以同时进行。

团队知道会发生什么。


由于编码是基于合同的,因此生产者和消费者团队对彼此的期望有所了解。 结果,如果由于不同的开发速度而无法进行组间测试,则可以使用存根软件根据合同对另一方的行为进行建模。

跨平台兼容性


由于服务参数仅取决于合同,因此用于开发服务的实际软件结构并不重要。 服务提供者和服务使用者可以使用不同的技术。

允许重用模式


WSDL中很好地定义了用于定义服务合同的方案。 因此,如果部分服务在其他服务中重复,则相应的方案也可以重用。

合同优先法的缺点


需要额外的前期费用


这些费用大部分将以服务协议为中心。 您必须确保合同定义明确,并且不会经常更改。

合同续签和交换机制


在使用服务期间,如果您更新合同,则它将影响所有其他相关方。 因此,必须有一个适当的机制将变更转移给不同的使用者。

关于这个问题,有一个作者的视频

总结


在本文中,我们讨论了Web服务上下文中的“合同优先”方法。

补充阅读


使用开放API生成器的API First方法快速开发应用程序

实施API优先的设计方法

Source: https://habr.com/ru/post/zh-CN483206/


All Articles