Swagger

生态

API Document Auto Generator

接入Swagger

# 添加依赖
  <swagger.version>2.9.2</swagger.version>

  <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>${swagger.version}</version>
  </dependency>
  <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>${swagger.version}</version>
  </dependency>
        
# 配置参数

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Value("${swagger.enabled:true}")
    private boolean swaggerEnabled;

    @Bean
    public Docket createRestApi() {

        /**
         * basePackage填你要生成的接口的包
         * 不想暴露的接口可以在该API上加注解@ApiIgnore
         */
        return new Docket(DocumentationType.SWAGGER_2)
                .enable(swaggerEnabled)
                .apiInfo(apiInfo())
                // 禁用默认的response
                .useDefaultResponseMessages(false)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    /**
     * API 信息
     *
     * @return
     */
    private ApiInfo apiInfo() {

        String desc = PrintUtil.format("生成时间:{}", new Date());
        return new ApiInfoBuilder().title("[demo] Service Api Documentation")
                .description(desc).version("1.1").build();
    }
}

参数配置详解:
https://springfox.github.io/springfox/docs/current/#quick-start-guides

启动项目
访问 http://{ip}:{port}/swagger-ui.html 预览界面

API Document Auto Generator

注解
常用注解自己上网搜吧

禁用默认接口返回状态
是否使用默认的接口返回状态
code 201
code 401
code 403
code 404

配置中已给出
useDefaultResponseMessages(false)

禁用Swagger
生产环境禁用swagger
通过配置环境变量 swagger.enabled 在参数配置类中决定是否启动swagger
.enable(swaggerEnabled)

接口测试
点击“Try it out ”,可进行接口测试

利弊分析

  • 优点
    接入简单
    功能丰富
    接口分类
    mock测试

  • 缺点
    界面不够直观
    不支持多项目
    一定的注释成本

界面改进

一位前端牛人写的 swagger-ui-layer ,重新排了下版,好看多了
项目已开源
Online demo
http://suldemo.tianox.com/docs.html

# 添加依赖
   <dependency>
       <groupId>com.github.caspar-chen</groupId>
       <artifactId>swagger-ui-layer</artifactId>
       <version>1.1.1</version>
   </dependency>

启动项目,访问 http://{ip}:{port}/docs.html 预览界面
API Document Auto Generator

接口测试
点击“Debug”,可进行接口测试

优缺点分析

  • 优点

简单直观
交互友好
接口测试

  • 缺点

需添加额外注解
无历史版本维护
文档生成要依赖于接口对象定义完成

  • 改造建议
    接口搜索
    分组过滤
    多项目支持
    历史版本存储

Java Doc

查看帮助

# 查看帮助命令
javadoc -help

牛刀小试

  • 生成接口文档
    javadoc -d /Users/yuan/Desktop/company/doc -sourcepath /Users/yuan/try/demo/src/main/java/com/example/demo/**/*.java -subpackages /Users/yuan/try/demo/src/main/java/com/example/demo/

  • 查看文档
    预览界面
    API Document Auto Generator

优缺点分析

优点

注释即文档
规范代码编写(参照学习 jdk 源码)
类信息详尽
目录层次分明
支持导出

缺点

接口信息不直观
关注点不突出
不支持多项目
不支持mock测试
文档生成要依赖于开发工作的完成

Furthermore

  • 在线编辑
  • 接口搜索
  • 多项目集成
  • 多分支切换
  • 历史版本维护

Reference

https://blog.csdn.net/tuposky/article/details/77965139
https://www.oschina.net/p/swagger-ui-layer

相关文章:

  • 2021-11-07
  • 2022-12-23
  • 2022-01-05
  • 2021-08-27
  • 2021-10-15
  • 2022-12-23
  • 2021-09-26
  • 2021-12-18
猜你喜欢
  • 2021-06-21
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2021-08-19
  • 2022-02-18
相关资源
相似解决方案