Java / Spring:如何快速生成整个数据库CRUD REST API

随着时间的流逝,Spring框架已成为Java中使用最广泛的Web开发框架之一,这一点已变得显而易见。 在接下来的十年之际,Spring最受欢迎的模块Spring Boot刚刚进行了重大更新。

新的Spring Boot版本“ 2.2.0”和年份“ 2020”几乎完美匹配。 因此,Speedment团队现在通过改进Spring Boot插件来填补空白。

如果这是您第一次了解Speedment,那么您将大饱口福,因为我们将演示Speedment Spring Boot插件如何使开发人员轻松地使用Speedment构建Spring数据库应用程序,Speedment是一个具有强大的基于流的查询API的ORM ,作为其骨干。

关于速度

速度可以描述为Java社区应得的ORM –一种工具包,适合那些喜欢快速开发甚至更快的应用程序的人。 通过利用Java Stream API作为与您选择的数据库进行通信的主要方式,Speedment使具有Java经验的开发人员感到宾至如归。 除了易于使用的API外,Speedment还为开发人员提供了图形化工具,可在几秒钟内为他们生成域模型。

如果您总体上对Speedment感兴趣,可以找到带有示例的详细文档
在这里 。 本文的其余部分将重点介绍Spring Boot插件。

Spring Boot:最快的开始

Speedment Spring Boot插件已经存在了一段时间,但是从Speedment 3.2.2开始引入了一个主要功能-可以直接从数据库模型生成完整的CRUD REST API的功能。

步骤取决于您是从头开始还是已有项目,步骤会有所不同,但是请放心,无论您的项目状态如何,集成过程都不费吹灰之力。

如果您希望将Spring Boot集成到现有的Speedment项目中,则需要在pom.xml中添加以下2个子句:

<plugin>
    <groupId>com.speedment.enterprise</groupId>
    <artifactId>speedment-enterprise-maven-plugin</artifactId>
    <version>${speedment.version}</version>
                
    <configuration>
        <components>
            <component>com.speedment.enterprise.plugins.spring.SpringGeneratorBundle</component>
        </components>
        <appName>${project.artifactId}</appName>
        <packageName>${project.groupId}</packageName>
    </configuration>
    ... // Database connector dependency           
</plugin>
<dependencies>
 ...
<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.1</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.2.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>com.speedment.enterprise.plugins</groupId>
    <artifactId>spring-runtime</artifactId>
    <version>${speedment.version}</version>
</dependency>
...
</dependencies>

添加后,下次重新生成域模型时,应生成特定于Speedment的Spring配置。 生成的配置为Speedment生成的各种管理器处理数据库连接属性和Bean注册。

如果您是从头开始,请转到项目初始化程序 ,为您生成一个Spring-Boot-ready项目。 如何配置项目取决于您自己,但是要在生成的项目中包括Spring Boot插件,请确保选中了Plugins部分中Spring旁边的复选框。 对项目配置满意后,单击“下载”按钮,您将收到一个准备好使用的压缩项目。

轻松进行CRUD

安装插件后,Speedment工具中将提供一些特定于Spring Boot的选项,可用于配置REST API。 您可以通过发出以下命令来启动Speedment工具:

 mvn speedment:tool 
 <br> 

如果这是您第一次使用Speedment,则可能需要按照以下说明熟悉工作流程
“ Hello Speedment”快速入门指南。

默认情况下,Speedment工具不会生成REST API。 要为特定表生成CRUD REST API,请在树视图中选择该表,然后选中“ Generate @RestController”选项和“ REST Enable Create / Update / Delete”选项。 通过单击“生成”,将生成一组为特定表实施CRUD操作的REST映射。

而已! 无需手动编码。 只需通过发出以下命令来启动生成的Spring:

 mvn spring-boot:run 

使用REST创建实体

要使用生成的REST API创建新实体,必须对工具中指定的路由执行POST请求。 默认情况下,此路由的名称与表的名称相同,并以模式名称为前缀。 如果取消选中“ REST Endpoint”选项,则可以指定自定义路由名称。 请求主体应在JSON对象中包含键值对,其中该工具的“ REST字段名称”值是键。

如果我们要创建一个名为“ person”的表,其中包含“ id”,“ name”和“ age”列,我们将发送以下请求以创建一个新的“ person”实体:

 POST localhost: 8080 /db/person  { 
     “id”: 1 , 
     “name”: “Jane”, 
     “age”: 25  } 
 curl -d '{“id”: 1,“name”: “Jane”,“age”: 25}' -H "Content-Type:application/json" -X POST localhost:8080/db/person 

如果列是自动生成的(或正在使用序列),则可以将其从POST正文中排除。 如果要强制从POST正文中排除特定的列,请在工具树视图中单击特定的列,然后取消选中“包含在创建正文中”并重新生成域模型。 另一方面,如果要在执行请求时强制POST正文中存在某个列,请选中“在创建正文中是必需的”并重新生成域模型。

使用REST检索实体

要检索我们新创建的实体,我们必须在用于创建实体的相同路径上执行GET请求:

 GET localhost:8080/db/person 
 curl localhost:8080/db/person/1 

执行的请求将返回所有现有实体的JSON数组。 在我们的例子中,它将返回一个仅包含我们唯一实体的数组:

 [ 
     { 
         “id”: 1 , 
         “name”: “Jane”, 
         “age”: 25 
     }  ] 

官方Speedment文档中详细介绍了过滤器和分类器等高级概念。

使用REST更新现有实体

使用REST API更新现有实体的方式与创建实体的方式类似。 代替POST请求,我们执行PATCH请求,并且通过实体标识符扩展路由。 我们的实体标识符取决于该表的“主键”列。 由于我们的PK列是数字类型,因此我们的实体标识符将是整数。

要更新在上一个示例中创建的实体,我们将执行以下请求:

 PATCH localhost: 8080 /db/person/ 1  { 
     “name”: “Mike”, 
     “age”: 43  } 
 curl -d '{“name”: “Jane”,“age”: 25}' -H "Content-Type:application/json" -X PATCH localhost:8080/db/person/1 

默认情况下,所有列都包含在PATCH主体中(“主键”列除外),但是它们不是强制性的。 如果您希望从请求正文中强制排除某些列,请在工具树视图中单击特定列,然后取消选中“包含在更新正文中”并重新生成域模型。 另一方面,如果要在请求正文中强制列存在,请选中“在更新正文中是必需的”并重新生成域模型。

使用REST删除实体

使用REST API删除实体非常简单–我们在用于实体更新的同一路径上执行DELETE请求。

要删除我们在前面的示例中创建和更新的实体,我们将执行以下请求:

 DELETE localhost:8080/db/person/1 
 curl -X DELETE localhost:8080/db/person/1 

摘要

启动新项目有时会很麻烦。 作为开发人员,我们希望尽可能避免这些不便,并直接涉足编码。 借助Speedment的新Spring Boot插件,开发人员可以直接从数据库中自动生成所有必要的配置和REST控制器,从而领先于游戏。

我们希望您喜欢Speedment Spring Boot插件提供的有关新CRUD功能的简短指南。 如果您对新功能的更详细说明感兴趣,请转至官方文档 ,您将在其中找到有关CRUD新功能的深入说明和示例。

翻译自: https://www.javacodegeeks.com/2019/12/java-spring-how-to-generate-an-entire-database-crud-rest-api-with-speedment.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值