接口管理——Swagger

Swagger是一个用于设计、构建和文档化API的工具集。它包括一系列工具,如Swagger Editor(用于编辑Swagger规范)、Swagger UI(用于可视化API文档)和Swagger Codegen(用于根据API定义生成客户端库、server stubs等)。Swagger通过定义API的结构、参数、请求和响应格式等信息,帮助开发者更轻松地创建和管理API,并生成易于理解的文档。按照它的规范去定义接口及接口相关的信息,就可以做到生成接口文档,以及在线接口调试页面。官网地址:https://swagger.io/

与Postman相比:Swagger更关注API设计和文档化,而Postman更适合测试、调试、监视API。
Knife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案。

使用:

  1. 在pom.xml中添加依赖(导入 knife4j 的maven坐标):

    <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>3.0.2</version> </dependency>
  2. 在配置类(WebMvcConfiguration)中加入 knife4j 相关配置

    复制代码
    /**
      * 通过knife4j生成接口文档
      * @return
      */
     @Bean
     public Docket docket() {
         log.info("准备生成接口文档......");
         ApiInfo apiInfo = new ApiInfoBuilder()
                 .title("xxx项目接口文档")
                 .version("2.0")
                 .description("xxx项目接口文档")
                 .build();
         Docket docket = new Docket(DocumentationType.SWAGGER_2)
                 .apiInfo(apiInfo)
                 .select()
                 //指定生成接口需要扫描的包
                 .apis(RequestHandlerSelectors.basePackage("这里填包名:AAA.BBB.CCC"))
                 .paths(PathSelectors.any())
                 .build();
         return docket;
     }
    
     /**
      * 设置静态资源映射
      * @param registry
      */
     protected void addResourceHandlers(ResourceHandlerRegistry registry) {
         log.info("开始设置静态资源映射......");
         registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
         registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
     }

当访问http://localhost:8080/doc.html时:

通过注解可以控制生成的接口文档,使接口文档拥有更好的可读性,常用注解如下:

添加这些注解的作用:


相关推荐
未来转换2 分钟前
基于A2A协议的生产应用实践指南(Java)
java·开发语言·算法·agent
Rust语言中文社区4 分钟前
【Rust日报】Clone:像进程一样 fork 虚拟机的 Rust KVM VMM
开发语言·后端·rust
求知也求真佳8 分钟前
S02|工具使用:让 Agent 真正会干活,添加工具
开发语言·agent
Dwzun11 分钟前
基于Java+SpringBoot+Vue的校园二手物品置换系统设计与实现【附源码+文档+部署视频+讲解】
java·开发语言·spring boot
charlie11451419117 分钟前
嵌入式Linux驱动开发(3)——内核模块机制 - Linux 的插件系统
linux·运维·开发语言·驱动开发·嵌入式硬件·学习
C、空白格29 分钟前
Java集成Vosk实现离线语音识别
java·开发语言·语音识别
编码浪子38 分钟前
基于 Rust + Axum 的企业级权限管理系统设计与实现
开发语言·后端·rust
历程里程碑40 分钟前
MySQL事务深度解析:ACID到MVCC实战+万字长文解析
开发语言·数据结构·数据库·c++·sql·mysql·排序算法
Lyyaoo.1 小时前
【JAVA基础面经】native方法
java·开发语言
牛十二1 小时前
nacos2.4连接出错源码分析
java·linux·开发语言