- RESTfu简介
- 搭建Jpa环境
- SpringBoot中REST默认提供的增删改查
- SpringBoot中REST自定义查询方法
- REST配置CORS
- 自定义REST配置
- MongoDB实现REST
- RESRful简介
- 是一种风格而不是一种约束
- 搭建Jpa快速构建RESTful服务
创建SpringBoot项目,添加依赖 web依赖 SQL下的Spring Data JPA依赖,MySQL Driver依赖 web下的Rest Respositories依赖 在pom文件下制定mysql的version,添加druid依赖
<dependency>
<groupId>con.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</denpendency>
dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>5.1.27</version>
</denpendency>
在application.properties下配置JPA和数据库信息
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306?useUnicode=true&characterEncoding=UTF-8
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
spring.jpa.show-sql=true
spring.jpa.database=mysql
spring.jpa.database-platform=mysql
spring.jpa.hibernate.ddl-auto=update
创建一个实体类Book
@Entity(name="t_book")
public class Book{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
private String name;
private String author;
// get\set()
//.....
}
创建一个BookDao
public interface BookDao extends JpaRepository<Book,Integer>{
}
创建一个Test类
@AutoWride
BookDao bookDao;
@Test
public void test1(){
Book book = new Book();
book.setName("三国演义");
book.setAuthor("罗贯中");
book.setId(1);
List<Book> list = bookDao.update(book);
System.out.println(book);
}
- SpringBoot中REST默认提供的增删改查
查询使用Postman ====GET http://localhost:8080/books //查询就是地址加上要查询的类名小写加上's' http://localhost:8080/books?page=1$size=2&sort=id,desc //倒序分页查询 http://localhost:8080/books/1 //查询id 为1的记录 添加======POST http://localhost:8080/books {"name":"水浒传“,"author":"施耐庵"} //在body中添加 修改====PUT http://localhost:8080/books/5 //修改id为5的记录 {"name":"水浒传“,"author":"鲁迅"} //在body中添加,修改作者名为鲁迅 删除====DELETE http://localhost:8080/books/6 //删除id为6的记录
- SpringBoot中REST自定义查询方法
//@RepositoryRestResource可选 @RepositoryRestResource(path="bs",collectionResourceRel="bs",itemResourceRel="b") public interface BookDao extends JpaRepository<Book,Integer>{ @RestResource(path="byname",rel="findbyname") //(可选)可以修改自定义方法为其它名称 List<Book> findBookByNameContaining(@Param("name") String name); } 在postman中 ====Get http://localhost:8080/books/search ///可以查看相关的接口 就会出现: http://localhost:8080/books/search/findBookByNameContaining(?name) 就可以用这个自定义的方法,查询啦 http://localhost:8080/books/search/findBookByNameContaining?name=西 如果上面使用了RestResource注解,则 http://localhost:8080/book/serach/byname?name=西 如果上面定义了@RepositoryRestResource注解,则 http://localhost:8080/bs/search/byname?name=西
- REST配置CORS请求跨域
@CrossOrigin //跨域注解 public interface BookDao extends JpaRepository<Book,Integer>{ }
- 自定义REST配置
//第一种====推荐 //在application.properties中 spring.data.rest.base-path=/api //定义访问的时候要在端口后加入/api为前缀访问 spring.data.rest.default-page-size=20 //查询后默认返回20条记录 spring.data.rest.max-page-size=100 //最大的返回记录数 //第二种===没多大必要 //用java代码实现,创建一个RestConfig类实现RepositoryRestConfigure,重写里面的方法 @Configuration public class RestConfig implements RepositoryRestConfigure { @Override public void configureRepositoryRestConfiguration(RepositortRestConfiguration config){ config.setDefaultPageSize(20) .setMaxPageSize(100); // ..... //提供的方法和第一种里面是一样的 } }
- MongoDB构建REST服务
- 创建SpringBoot项目,添加依赖 web依赖 NoSQL下的Spring Data MongoDB依赖 web下的Rest Respositories依赖 在application.properties中配置MongoDB
spring.data.momgodb.database=zenghao spring.data.mongodb.port=27017 spring.data.mongodb.password=123 spring.data.mongodb.username=root spring.data.mongodb.authentication-database=admin spring.data.mongodb.host=127.0.0.1
创建一个实体类Book
public class Book{ private Integer id; private String name; private String author; //get\set() // ..... }
创建一个BookDao接口
public interface BookDao extends MongoRepository<Book,Integer> { }
后面的CURD操作和前面JPA一样(略)