Java / Spring:如何快速生成整个Swagger记录的CRUD REST API

作为开发人员,我们在日常生活中经常面临的最繁琐的任务之一就是编写良好且易于理解的文档。 无论我们的文档只有几行来解释功能的核心功能,还是表明系统的来龙去脉的成熟文章都没关系。 重要的是,我们试图通过文档传达的信息是准确且可理解的。

在上一篇文章中 ,我们讨论了自动REST API生成的主题。 更准确地说,我们演示了如何使用Speedment的经过改进的Spring Integration插件为您的数据库生成完整的CRUD REST API。

今天,我们将使这一知识更进一步,并演示如何通过一次单击即可为REST API生成交互式文档。

如果您没有机会使用Speedment Spring插件,我们强烈建议您阅读上一篇文章,因为该文章包含遵循本指南的必要信息。

您喜欢Java Streams吗?

如果对这个问题的回答是“是!”,“绝对!” 或“哎呀!”,那么Speedment是适合您的工具。 Speedment是Java ORM工具箱和运行时,它使用纯Java Streams作为应用程序和数据库之间的接口。

除了已经熟悉的Streams API之外,Speedment还为最终用户提供了图形化工具,以便在几秒钟内生成数据库的Java表示,从而使他们完全可以停留在仅Java的环境中。

如果您想进一步了解Speedment,请前往
文档页面上 ,您将找到大量指南和示例。 在本文的其余部分,我们将重点介绍Speedment的Spring插件的新更新。

开始之前

为了生成REST API文档,Speedment使用了OpenAPI规范和Swagger UI的组合。

根据您是否从头开始,准备步骤会有所不同,但是无论起点如何,最终结果都是相同的。

如果您已按照上一篇文章中的指南进行操作,我们在其中解释了如何使用Speedment生成REST API,则只需向项目的pom.xml文件添加几个依赖项:

 < dependencies > ... < dependency > < groupId >io.springfox</ groupId > < artifactId >springfox-swagger2</ artifactId > < version >2.9.2</ version > </ dependency > < dependency > < groupId >io.springfox</ groupId > < artifactId >springfox-swagger-ui</ artifactId > < version >2.9.2</ version > </ dependency > ...  </ dependencies > 

另一方面,如果您是从头开始的话,请转到Initializer ,在这里您将能够在Spring支持下生成Speedment项目。 到达Initializer后,将为您提供大量用于配置项目的选项。 一个特别重要的配置选项是Initializer的Plugins部分。

要在新的Speedment项目中启用Spring支持,请选中“ Spring”选项旁边的复选框。 对项目配置满意后,继续并单击初始化器底部的“下载”按钮。

准备就绪后,可以通过从项目模板的根文件夹执行以下命令来启动Speedment Tool:

 mvn speedment:tool 

如果正确安装了插件,则会看到一些特定于Spring Boot的选项,可用于配置REST API和文档。

如果这是您第一次使用Speedment,则可能需要遵循“ Hello Speedment ”快速入门指南来熟悉工作流程。

昂首阔步的自动机

对于以下示例,我们将使用MySQL示例数据库Sakila。 您可以将其下载为独立实例或Docker容器。

当您打开Speedment Tool并成功连接到数据库时,将为您提供一个用户界面,其中包含有关数据库的元数据信息以及一些您可以配置的选项:

如果单击顶部横幅中的“ Generate”按钮,将生成数据库的Java表示。 要为您的REST API生成文档,必须启用在项目视图中找到的“生成REST文档”选项(可通过选择树中的顶部节点来访问该选项)。

启用后,其他配置选项将变为可用,使您可以进一步自定义生成的文档:

下次重新生成Spring项目时,将生成一些特定于OpenAPI的配置。 为了查看和使用生成的文档,您需要运行Spring应用程序。 为此,执行以下命令:

 mvn spring-boot:run 

一旦您的Spring应用程序启动并运行,您就可以在以下端点http:// localhost:8080 / swagger-ui.html上找到生成的Swagger文档。

根据您配置项目的方式,在生成的文档中可能会看到不同的结果。 例如,如果禁用某个表的REST API生成,则下次重新生成项目时,该表的端点将在文档中不可用。

借助生成的Swagger文档,您可以立即了解您的应用程序已注册了哪些REST终结点,每种终结点可使用的HTTP方法,并直接从Swagger UI对这些终结点执行HTTP请求:

如果不确定请求正文中需要什么,可以在文档底部“模型”部分下找到请求正文模型:

注意:连接到Swagger端点时,如果出现以下提示,请确保您的Spring入口点位于正确的程序包中(必须在Swagger配置所在的程序包上方或相同的程序包中):

通常,这表明Spring未扫描您的Swagger配置。

摘要

编写良好且易于理解的文档可能是一个漫长而乏味的过程。 借助Speedment的Spring Boot插件的新更新,用户可以在几秒钟内为其REST API生成交互式文档。

资源资源

文章“如何快速生成整个数据库CRUD REST API”

Speedment Initializer能够生成项目模板 在GitHub上加速

s

Per Minborg
米斯拉夫·米利切维奇(MislavMiličević)

翻译自: https://www.javacodegeeks.com/2020/03/java-spring-how-to-generate-an-entire-swagger-documented-crud-rest-api-with-speedment.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中的实践 中兴_中兴通讯5G智慧治水业务在千岛湖畔下姜村成功实践

近日&#xff0c;中兴通讯智慧治水业务在千岛湖畔下姜村成功实践。这一业务为实现千岛湖下姜村水域的智能化管理、立体化监控提供了可靠保障&#xff0c;也将浙江电信5G网络、中兴通讯5G端到端解决方案在试商用实践中再推进一步。下姜村曾先后获得“全国创先争优先进基层党组织…

一加7充电_一加真无线耳机曝光,65W快速充电器获认证

一加8系列发布后&#xff0c;曾有消息显示&#xff0c;一加旗下还有一款被称为一加Z的手机将于今年7月登陆市场。现在&#xff0c;距离传言中提到的发布时间越来越近&#xff0c;也再次有消息提到了这一时间点。不过&#xff0c;这次爆料中的新品并不是手机产品。来自爆料人士 …

从工作中清除代码–使用JUnit 5,Mockito和AssertJ编写可执行规范

可执行规范是可以用作设计规范的测试。 通过启用公共语言&#xff08;在DDD世界中&#xff0c;这也称为无处不在的语言 &#xff09;&#xff0c;它们使技术和业务团队能够进入同一页面。 它们充当代码的未来维护者的文档。 在本文中&#xff0c;我们将看到一种编写自动测试的…

家用计算机注意哪些参数,电脑小白买内存条要注意哪些?主要看哪些参数?这些知识要掌握...

内存条是电脑的核心硬件之一&#xff0c;它的作用主要是为CPU服务的&#xff0c;电脑运行的时候&#xff0c;CPU从硬盘里调用数据通过总线寻址放在内存里&#xff0c;内存相当于缓冲处理区&#xff0c;处理好信息后再回馈给CPU&#xff0c;然后电脑再根据指令运行。内存没有记忆…

日照职业技术学院计算机怎么样,日照职业技术学院宿舍条件怎么样 住宿环境好不好...

又到了一年一度的新生入学季&#xff0c;今年考上日照职业技术学院的学子们对你们的新学校有没有期待&#xff1f;下文中有途网小编给大家整理了日照职业技术学院的宿舍环境&#xff0c;供参考&#xff01;日照职业技术学院宿舍环境如何大学宿舍是各位同学们在大学期间会陪伴我…

cam350怎么看顶层_蛋糕胚速学教程大全,适合初学者看哦!

蛋糕胚速学教程大全&#xff0c;适合初学者看哦&#xff01;烘焙蛋糕最难的还是装饰&#xff0c;对手残星人来说&#xff0c;好不容易切好了蛋糕胚&#xff0c;抹面费了老大劲还是凹凸不平&#xff0c;做出来像狗狗啃过似的&#xff5e;快来看这份蛋糕抹面技巧&#xff0c;教你…

计算机一级上机考试试题题库,2016年计算机一级上机考试题库

2016年计算机一级上机考试题库第1题、 ****** 本套题共有5小题 ******(1)新建文档WDA01.DOC&#xff0c;插入文档WTA01.DOC的内容&#xff0c;将文中所有“星星”替换为“行星”&#xff0c;存储为文档WDA01.DOC。(2)新建文档WDA02.DOC&#xff0c;插入文档WDA01.DOC的内容&…

stc单片机485发送多出一字节_单片机干货!STC8H案例制作分享(内含高清实物动图)...

本期&#xff0c;Lucy制作了九个案例分享给大家&#xff0c;分别为&#xff1a;流水灯、按键LED、数码管、点阵、定时蜂鸣器、NTC温度计、超声波测距仪、光敏RGB灯、氛围灯(红外)Lucy无偿提供全部案例的原理图和部分案例的代码。有需要的朋友先关注并私信我。需要源码私信我&am…

怎么调用获取被创建的预制体_Go 语言 Web 编程系列—— 获取用户请求数据(上)...

0、GET/POST 请求数据在 PHP 中&#xff0c;可以直接通过全局变量 $_GET 和 $_POST 快速获取 GET/POST 请求数据&#xff0c;GET 请求数据主要是 URL 查询字符串中包含的参数&#xff0c;以前面在线论坛项目的群组详情页为例&#xff1a;http://localhost:8080/thread/read?id…

删除表报正在使用_U盘拔出要不要点quot;安全删除USB硬件quot;退出?

小U盘&#xff0c;大用处。U盘不仅可以用来存储各种各样的文件&#xff0c;甚至还可以用来制作电脑启动盘、Win to Go系统盘等。直接拔还是点“安全删除”后再拔U盘呢&#xff1f;在用完U盘后&#xff0c;有的会点击电脑右下角“安全删除”才拔&#xff0c;有的则会不管那么多直…

职业规划测试软件,生涯规划常用测试工具

原标题&#xff1a;生涯规划常用测试工具认识自己测试生涯规划关于生涯规划的几个测试上周我们说到中学生很有必要进行生涯规划&#xff0c;在进行生涯规划前&#xff0c;我们需要对自己有一个更清晰、更全面的认识&#xff0c;随着心理学的发展&#xff0c;很多认识自我的测试…

使用SoapUI调用不同的安全WCF SOAP服务-基本身份验证,第一部分

在这个分为三部分的系列中&#xff0c;我将演示如何使用SoapUI API工具来调用安全的WCF SOAP服务。 第一篇文章将着重于创建将要测试的系统的服务。 第二篇文章将介绍在基本身份验证机制保护的情况下调用它所需的步骤。 在最后一部分中&#xff0c;我将对初始服务稍作更改&…

配置中文_星球大战:战机中队配置需求公布 支持中文

近日《星球大战》系列新作《星球大战&#xff1a;战机中队》公布&#xff0c;该作采用寒霜引擎打造&#xff0c;支持中文。游戏将于2020年10月3日发售&#xff0c;预购价格为238元&#xff0c;登陆Xbox One/PS4/PC(Steam/Origin/Epic)平台&#xff0c;有单人和多人模式&#xf…

为什么在生产中进行硒自动化测试对于您的下一个版本至关重要?

您是否认为仅仅是因为您的Web应用程序在过渡环境中以鲜艳的色彩通过了&#xff0c;您的生产环境也将是相同的吗&#xff1f; 您可能需要重新考虑&#xff01; 特别是&#xff0c;如果我们指的是跨浏览器测试 &#xff0c;则需要确保跨各种操作系统&#xff0c;运行在不同操作系…

手机usb共享计算机网络连接,如何将手机wifi网络通过USB共享给电脑?小编教你共享方法...

曾经就有过这样的情况&#xff0c;家里突然断网了&#xff0c;这时又需要打开电脑接收文件&#xff0c;或是需要在线编辑公众号的文章&#xff0c;着急得很&#xff0c;这时电脑没有网络怎么办呢&#xff1f;能不能使用手机的流量&#xff0c;来让电脑连网呢&#xff1f;有时候…

为全局变量赋值_实例分析如何远离漫天飞舞的全局变量

前篇《由static来谈谈模块封装》基本实现了对外隐藏属性&#xff0c;隐藏局部模块函数&#xff0c;开放接口的功能。对于这个话题还有些点没有深入探讨&#xff1a;为什么要这样做&#xff1f;以及这样做的好处。或许很多刚刚开始用C或者其他面向对象编程语言(比如C)的小伙伴们…

计算机指令取决,不同的计算机,其指令不同,这主要取决于什么?

不同的计算机&#xff0c;其指令系统也不同&#xff0c;这主要取决于所用的CPU。1、CPU指中央处理器&#xff0c;是一块超大规模的集成电路&#xff0c;是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。2、程…

栈空间_Linux中的进程栈和线程栈

1. 进程栈进程栈是属于用户态栈&#xff0c;和进程虚拟地址空间 (Virtual Address Space) 密切相关。那我们先了解下什么是虚拟地址空间&#xff1a;在 32 位机器下&#xff0c;虚拟地址空间大小为 4G。这些虚拟地址通过页表 (Page Table) 映射到物理内存&#xff0c;页表由操作…

csgo显示服务器失败,csgo服务器失败

csgo服务器失败 内容精选换一换您可以通过“应用管理”页面的应用列表&#xff0c;快速查看应用状态&#xff0c;及相关异常信息&#xff0c;如图1所示。包括&#xff1a;应用状态&#xff1a;即图1中的①应用异常信息&#xff1a;即图1中的②云服务器异常信息&#xff1a;即图…

DMN中的函数式编程:感觉就像再次重读我的大学课程一样

在本文中&#xff0c;我想分享有关DMN中的递归支持的有趣见解&#xff0c;并重点介绍FEEL语言的特定属性如何使功能编程结构能够在DMN中建模。 我们将从一个基本的示例开始&#xff0c;以演示FEEL语言和DMN构造的“商业友好”性质如何使我们能够解决一个通常不愉快的问题&…