美文网首页springboot
SpringBoot快速上手——《三》:SpringBoot R

SpringBoot快速上手——《三》:SpringBoot R

作者: java1024家园 | 来源:发表于2019-12-18 18:57 被阅读0次

    SpringBoot Restful 风格Api开发+SpringBoot 集成Swagger

    一.Restful 风格API

    restful API 命名禁止出现动词,即用请求方式区分动作。如下:

    get 查询接口
    post 新增接口
    put 更新接口
    delete 删除接口
    

    1.maven-archetype-quickstart方式创建模块springboot-restful-api

    2.把springboot-ssm模块的代码和配置复制过来,不需要额外引入依赖。

    3.修改UserController代码,改成Restful接口

    @RestController
    @RequestMapping("/user")
    public class UserController {
    
        @Resource
        private UserMapper userMapper;
    
        //@RequestMapping("/listByUser")
        @GetMapping("/")
        public List<User> listByUser() {
            return userMapper.list();
        }
    
        //@RequestMapping("/getOneUser")
        @GetMapping("/{id}")
        public User getOneUser(@PathVariable("id") int id) {
            return userMapper.selectByPrimaryKey(id);
        }
    
        //@RequestMapping("/addUser")
        @PostMapping("/")
        public int addUser(User user) {
            return userMapper.insert(user);
        }
    
        //@RequestMapping("/deleteUser")
        @DeleteMapping("/{id}")
        public int deleteUser(@PathVariable("id") int id) {
            return userMapper.deleteByPrimaryKey(id);
        }
    
        @PutMapping("/")
        public int updateUser(User user) {
            return userMapper.updateByPrimaryKey(user);
        }
    }
    

    4.运行测试,浏览器 http://localhost:8090/user/1

    测试
    测试

    5.引入restful 风格api后,post put delete请求方式在浏览器就不好操作了,此时我们可以选择下载一个测试工具Postman来辅助我们测试。但SpringBoot可以集成一个很强大的测试工具,可以很方便的测试接口。它就是传说中的Swagger

    二.SpringBoot 集成Swagger

    1.引入依赖

    <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>
        
    

    2.创建配置类SwaggerConfig.java

    .apis(RequestHandlerSelectors.basePackage("xyz.java1024.controller")) 对应controller所处的包

    
    

    3.浏览器进入api页面 地址为:http://localhost:8090/swagger-ui.html

    swagger-ui

    4.调用get请求接口

    swagger-ui

    5.对于实体类型的请求参数体,我们在Controller接口加上@RequestBody 可读性会更加好!

    修改前


    swagger-ui

    修改后


    swagger-ui
        //@RequestMapping("/addUser")
        @PostMapping("/")
        public int addUser(@RequestBody User user) {
            return userMapper.insert(user);
        }
    

    重新启动刷新swagger-ui页面


    swagger-ui

    5.测试post请求

    把创建时间和更新时间参数去掉 ,填写用户名等参数,成功插入一条数据。

    swagger-ui

    6.swagger 增强

    对于实体的某些属性我们时不需要传的,并且我们不想它显示在swagger的请求体中,如 新增用户的 createdAt和updatedAt 等属性,我们可以通过在属性上面添加@ApiModelProperty(hidden = true)注解来隐藏属性

    public class User implements Serializable {
    
        private int id;
    
        private String username;
    
        private String tel;
    
        private String password;
    
        private int status;
    
        @ApiModelProperty(hidden = true)
        private Timestamp createdAt;
    
        @ApiModelProperty(hidden = true)
        private Timestamp updatedAt;
        
    

    此时重启刷新swagger页面,再次进入UserController的post可看到少了参数,如图参数变得相当简洁!


    swagger-ui

    三.总结

    本文章,主要写了SpringBoot restful api开发,同时集成swagger测试接口!

    相关文章

      网友评论

        本文标题:SpringBoot快速上手——《三》:SpringBoot R

        本文链接:https://www.haomeiwen.com/subject/qxounctx.html