• 重生之 SpringBoot3 入门保姆级学习(22、场景整合 Swagger 接口文档)


    重生之 SpringBoot3 入门保姆级学习(22、场景整合 Swagger 接口文档)

    6.2 Swagger 接口文档


    1、将 starter 导入 Maven

    • 官网
    https://springdoc.org/
    

    image-20240614165800378

      <dependency>
                <groupId>org.springdocgroupId>
                <artifactId>springdoc-openapi-starter-webmvc-uiartifactId>
                <version>2.5.0version>
      dependency>
    

    2、浏览器访问地址可以看到我们的接口信息

    http://localhost:8080/swagger-ui/index.html
    

    image-20240614165955560

    3、可以在网页上对 接口 进行测试

    image-20240614170352172

    4、修改 RedisTestController 使用 @Tag 注解

    • 常用注解
    注解标注位置作用
    @Tagcontroller类标识controller作用
    @Parameter参数标识参数作用
    @Parameters参数参数多重说明
    @Schemamodel 层的 JavaBean描述模型作用及每个属性
    @Operation方法描述方法作用
    @ApiResponse方法描述响应状态码等
    package com.zhong.redis.controller;
    
    import com.zhong.redis.entity.Person;
    import io.swagger.v3.oas.annotations.tags.Tag;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.core.StringRedisTemplate;
    import org.springframework.data.redis.core.ValueOperations;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Date;
    
    /**
     * @ClassName : RedisTestController
     * @Description :
     * @Author : zhx
     * @Date: 2024-06-14 15:13
     */
    @Tag(name = "人员", description = "人员的 CRUD")
    @RestController
    public class RedisTestController {
        @Autowired
        StringRedisTemplate stringRedisTemplate;
    
        @Autowired  // 如果给 redis 中保存数据会使用默认序列化机制,导致 redis 中保存对象不合适
        RedisTemplate redisTemplate;
    
        @GetMapping("/count")
        public String count() {
            Long count = stringRedisTemplate.opsForValue().increment("count");
            // TODO 常见数据类型 k:v value可以有很多类型
            //
            //  string: 普通字符串:  redisTemplate.opsForValue()
            //  list    列表:       redisTemplate.opsForList()
            //  set:    集合:       redisTemplate.opsForset()
            //  zset:   有序集合:    redisTemplate.opsForzset()
            //  hash:   map结构:    redisTemplate.opsForHash()
    
            return "访问了[ " + count + " ]次";
        }
    
        @GetMapping("/person/save")
        public String savePerson() {
    
            Person person = new Person(1L,"小钟",23,new Date());
    
            redisTemplate.opsForValue().set("person", person);
    
            return "ok";
        }
    
        @GetMapping("/person/get")
        public Person getPerson() {
            return (Person) redisTemplate.opsForValue().get("person");
        }
    }
    

    5、显示效果

    image-20240614170644679

  • 相关阅读:
    Adobe premiere裁剪视频尺寸并转为GIF格式
    【多线程案例】阻塞队列,实现生产者消费者模型
    Spring Security(3)
    java:方法的重载/覆盖、多态
    uniapp项目+SSM实现的记账app
    利用CloudCompare进行点云过滤去噪(统计滤波)
    vue3瀑布流布局(使用 Vue 3 框架的单文件组件格式(Single-File Component)编写的)
    数据思维总结:
    树结构处理,list和tree互转
    《有钱人和你想的不一样》书籍分享
  • 原文地址:https://blog.csdn.net/weixin_56050344/article/details/139716826