摘要:本文介绍了RESTful以及如何在SpringBoot中构建REST服务
RESTful简介
在移动互联网中,RESTful 得到了非常广泛的使用。RESTful 这个概念提出来很早,但是以前没有移动互联网时,我们做的大部分应用都是前后端不分的,在这种架构的应用中,数据基本上都是在后端渲染好返回给前端展示的,此时 RESTful 在 Web 应用中基本就没用武之地,移动互联网的兴起,让我们一套后台对应多个前端项目,因此前后端分离,RESTful 顺利走上前台。
RESTful的功能,通俗来讲就是:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。
- GET:获取资源
- POST:新建或更新资源
- PUT:更新资源
- DELETE:删除资源
那么我们就通过一个实例来看看SpringBoot中如何使用RESTful。
SpringBoot中构建REST服务
搭建Jpa环境
添加依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
|
在application.properties中配置
1 2 3 4 5 6 7 8 9 10
| spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.username=root spring.datasource.password=11215858 spring.datasource.url=jdbc:mysql://localhost:3306/javaboy?serverTimezone=UTC
spring.jpa.properties..hibernate.dialect=org.hibernate.dialect.MySQL8Dialect spring.jpa.database=mysql spring.jpa.database-platform=mysql spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update
|
创建Book实体类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| package com.example.jparestful.bean;
import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id;
@Entity(name = "t_book") public class Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String name; private String author;
@Override public String toString() { return "Book{" + "id=" + id + ", name='" + name + '\'' + ", author='" + author + '\'' + '}'; }
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getAuthor() { return author; }
public void setAuthor(String author) { this.author = author; } }
|
创建BookDao接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| package com.example.jparestful.dao;
import com.example.jparestful.bean.Book; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.repository.query.Param;
import java.util.List;
public interface BookDao extends JpaRepository<Book, Integer> { List<Book> findBookByNameContaining(@Param("name") String name); List<Book> findBookByIdGreaterThan(@Param("id") Integer id); }
|
至此我们的基础配置就做好了,那么我们通过postman来测试以下RESTful的默认接口
RESTful默认的增删改查
用GET方法查询数据
我们在postman中使用GET方法访问该网址http://localhost:8080/books
从图中的URL中我们还可以看到,在后面添加数据的id,即可查到特定的数据。并且page中还显示了分页信息
- size表示每一页的条数
- totalElements表示总数据量
- totalPages表示总页数
- number表示当前页数
用POST方法增加数据