构建REST服务

  1. RESTfu简介
  2. 搭建Jpa环境
  3. SpringBoot中REST默认提供的增删改查
  4. SpringBoot中REST自定义查询方法
  5. REST配置CORS
  6. 自定义REST配置
  7. MongoDB实现REST


  • RESRful简介
  1. 是一种风格而不是一种约束
  • 搭建Jpa快速构建RESTful服务

创建SpringBoot项目,添加依赖 web依赖 SQL下的Spring Data JPA依赖,MySQL Driver依赖 web下的Rest Respositories依赖 在pom文件下制定mysql的version,添加druid依赖

con.alibabadruid-spring-boot-starter1.1.10

dependency>mysqlmysql-connector-javaruntime5.1.27

 在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.DruidDataSourcespring.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{}

 创建一个Test类

@AutoWride
BookDao bookDao;
@Test
public void test1(){Book book = new Book();book.setName("三国演义");book.setAuthor("罗贯中");book.setId(1);List 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{@RestResource(path="byname",rel="findbyname") //(可选)可以修改自定义方法为其它名称List 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{
    }

     

  • 自定义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 {@Overridepublic 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 {}
    

    后面的CURD操作和前面JPA一样(略)

     

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部