REST API开发-什么是Code First方法?

在本文中,我们将继续熟悉REST API的开发,并研究Code-First方法。

为了拥有良好的微服务,开发良好的REST API非常重要。 “代码优先”方法侧重于根据代码生成合同。 这是最好的方法吗?


你会学


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

REST API


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


什么是“代码优先”方法?


每当开发诸如REST API或SOAP API之类的服务时,都可以选择以下两种方法之一:

  • 代码优先,并根据代码生成合同
  • 合同优先和基于合同的代码开发

让我们从“代码优先”的快速示例开始。

Spring Boot Code First REST API示例


我们正在使用Spring Boot Framework开发RESTful Web服务来生成API。 例如,在retrieveAllUsers()API中,我们打开URI“ / users ”,然后
我们返回所有用户(资源/用户 ),
调用服务方法。

当我们转到该URL时,我们返回所有用户:


类似地定义其他服务方法,每个方法都有自己的URI。 在此示例中,我们获取代码并从中生成文档。 本文档描述了用户如何使用服务。 为此,我们使用Swagger文档格式:



Swagger允许我们从代码生成文档。 例如,这是Swagger生成以请求所有用户的内容:



它显示我们收到的响应消息的类型以及相应的响应状态。 您甚至可以从Swagger调用此服务以获得答案:



您还可以将POST请求发送给“ / users ”:



Swagger将告诉我们如何构造请求消息并指定其中的各个字段格式。 他还将告诉您您将收到的响应类型以及响应代码。 Swagger从代码生成的内容称为合同

代码优先的好处


这种方法的主要优点是:

  • 轻松完成合同 :生成合同不需要额外的工作。 这只是服务开发的副产品,因为它可以从代码自动生成。
  • 代码和合同同步 :由于合同是从代码生成的,因此它们始终彼此同步

代码优先的缺点


这种方法的缺点如下:

没有平行发展


服务生产者和服务使用者不能并行发展。 首先,您需要开发服务,然后生成合同,然后才能编写将遵守合同的使用者代码。 不了解合同,消费者就无法发展。

团队没有目标


由于在开发服务之前无法知道合同,因此开发中的各个利益相关者没有任何目的。 因此,很有可能会偏离方向并进行不必要的更改,这将浪费精力。

没有跨平台兼容性


在某些较旧的平台上,从代码生成合同不是那么容易。 结果,对于生成的合同来说,平台之间经常不兼容。

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

总结


在本文中,我们探讨了构建REST API的代码优先方法。 尽管从开发人员的角度来看,基于代码的方法是有效的,但是在涉及供应商和消费者的联合开发时,它面临着严重的问题。

补充阅读


API开发:设计优先还是代码优先?
如何在ASP.NET Web API中开发RESTful Web服务

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


All Articles