【springboot】使用swagger生成接口文档

1. 添加依赖

XML 复制代码
      <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
        <version>2.6.0</version>
      </dependency>

这里我老是添加不上这个依赖,搜索了下发现阿里云公共仓库中没有这个依赖,所以一直找不到。(阿里云仓库搜索

于是修改了下maven的setting文件,添加了阿里云的中心仓库的镜像。

XML 复制代码
      <mirror>
          <id>aliyunmaven-central</id>
          <mirrorOf>*</mirrorOf>
          <name>阿里云中心仓库</name>
          <url>https://maven.aliyun.com/repository/central</url>
      </mirror>

2. 配置swagger

java 复制代码
@Configuration
@ComponentScan
public class SwaggerConfig {
    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                .info(new Info().title("API文档")
                        .version("1.0")
                        .description("Spring Boot 3.2.8项目的API文档")
                        .contact(new Contact().name("huan").email("developer@example.com"))
                        .license(new License().name("Apache 2.0").url("http://springdoc.org")))
                .externalDocs(new ExternalDocumentation()
                        .description("外部文档")
                        .url("https://example.com/docs"));
    }
}

配置完以上内容,访问localhost:8080/swagger-ui/index.html,可以跳转以下页面。

3. 使用Swagger注解来描述API

控制器类

java 复制代码
@RestController
@RequestMapping("resfood")
//@Tag注解用于为API接口分组,并提供分组的名称和描述
@Tag(name = "菜品api",description = "菜品管理相关接口")
public class ResfoodController {
    @Autowired
    private ResfoodService resfoodService;

    //{fid}结合@PathVariable实现rest风格url
    @GetMapping("getById/{fid}")
    public Map<String,Object> getById(
            // @PathVariable注解用于将请求路径中的参数绑定到方法参数上
            @PathVariable Integer fid){
        Map<String,Object> map = new HashMap<>();
        Resfood resfood = null;
        try {
            resfood = resfoodService.getById(fid);
        }catch (Exception e){
            e.printStackTrace();
            //设置状态码和提示信息
            map.put("code",0);
            map.put("msg","查询失败"+e.getCause());
            return map;
        }
        map.put("code",1);
        map.put("obj",resfood);
        return map;
    }
}

一些注解

  • @Tag注解:用于为API接口分组,并提供分组的名称和描述。

控制类

显示效果

  • @Operation注解:提供关于该方法操作的简要和详细描述。

控制类

显示效果

  • @ApiResponse注解:提供该方法的响应信息,如HTTP 响应码、响应的描述信息、响应的内容等。
    • @Content注解:描述响应的内容。
    • @Schema注解:指定响应内容的模式。

控制类方法

显示效果

4. 访问Swagger UI

再次访问localhost:8080/swagger-ui/index.html,发现多了一些东西。

展开可以看到以下信息。

5. 测试

可以在swagger ui中发送测试数据,测试获得的响应json是否正确。打开某个请求路径,使用Try it out 按件后可以设置要测试的参数。

Execute后可以得到响应结果。

响应结果。

相关推荐
缺点内向3 小时前
Java:创建、读取或更新 Excel 文档
java·excel
带刺的坐椅3 小时前
Solon v3.4.7, v3.5.6, v3.6.1 发布(国产优秀应用开发框架)
java·spring·solon
四谎真好看5 小时前
Java 黑马程序员学习笔记(进阶篇18)
java·笔记·学习·学习笔记
桦说编程5 小时前
深入解析CompletableFuture源码实现(2)———双源输入
java·后端·源码
java_t_t5 小时前
ZIP工具类
java·zip
lang201509285 小时前
Spring Boot优雅关闭全解析
java·spring boot·后端
pengzhuofan6 小时前
第10章 Maven
java·maven
百锦再7 小时前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
刘一说7 小时前
Spring Boot 启动慢?启动过程深度解析与优化策略
java·spring boot·后端
壹佰大多7 小时前
【spring如何扫描一个路径下被注解修饰的类】
java·后端·spring