• swagger工具编写接口文档


    1、什么是swagger2

    • 编写和维护接口文档是每个程序员的职责,根据Swagger2可以快速帮助我们编写最新的API接口文档,再也不用担心开会前仍忙于整理各种资料了,间接提升了团队开发的沟通效率。

    2、常用注解

    • swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息的等等。

    • @Api:修饰整个类,描述Controller的作用
      @ApiOperation:描述一个类的一个方法,或者说一个接口
      @ApiParam:单个参数描述
      @ApiModel:用对象来接收参数
      @ApiModelProperty:用对象接收参数时,描述对象的一个字段
      @ApiImplicitParam:一个请求参数
      @ApiImplicitParams:多个请求参数

    3.项目当中使用

    3.1:先新建一个maven模块

    1.  我是在上一篇复习cloud的项目当中建的一个模块
    2. swagger1103
    3. 导入依赖
      1. <dependencies>
      2. <dependency>
      3. <groupId>org.springframework.bootgroupId>
      4. <artifactId>spring-boot-starter-webartifactId>
      5. dependency>
      6. <dependency>
      7. <groupId>org.springframework.bootgroupId>
      8. <artifactId>spring-boot-starterartifactId>
      9. dependency>
      10. <dependency>
      11. <groupId>org.springframework.bootgroupId>
      12. <artifactId>spring-boot-starter-testartifactId>
      13. dependency>
      14. <dependency>
      15. <groupId>io.springfoxgroupId>
      16. <artifactId>springfox-swagger2artifactId>
      17. <version>2.7.0version>
      18. dependency>
      19. <dependency>
      20. <groupId>io.springfoxgroupId>
      21. <artifactId>springfox-swagger-uiartifactId>
      22. <version>2.7.0version>
      23. dependency>
      24. <build>
      25. <plugins>
      26. <plugin>
      27. <groupId>org.springframework.bootgroupId>
      28. <artifactId>spring-boot-maven-pluginartifactId>
      29. plugin>
      30. plugins>
      31. build>
    4. 写上启动类,注意加上对应的注解(因为我们是手动配置springboot项目@EnableSwagger2
      1. @SpringBootApplication
      2. @EnableSwagger2
      3. public class SwaggerApp {
      4. public static void main(String[] args) {
      5. SpringApplication.run(SwaggerApp.class,args);
      6. }
      7. }
    5. 然后去写配置类SwaConfig(以后复制过去导包用就可以了,不用记)
      1. package com.pro.config;
      2. import com.google.common.base.Predicates;
      3. import org.springframework.context.annotation.Bean;
      4. import springfox.documentation.builders.ApiInfoBuilder;
      5. import springfox.documentation.builders.PathSelectors;
      6. import springfox.documentation.service.ApiInfo;
      7. import springfox.documentation.service.Contact;
      8. import springfox.documentation.spi.DocumentationType;
      9. import springfox.documentation.spring.web.plugins.Docket;
      10. public class SwaConfig {
      11. @Bean
      12. public Docket webApiConfig() {
      13. //.groupName是组的意思
      14. //apiInfo 在线文档的信息
      15. return new Docket(DocumentationType.SWAGGER_2)
      16. .groupName("webApi")
      17. .apiInfo(webApiInfo())
      18. .select()
      19. .paths(Predicates.not(PathSelectors.regex("/admin/.*")))
      20. .paths(Predicates.not(PathSelectors.regex("/error.*")))
      21. .build();
      22. }
      23. private ApiInfo webApiInfo() {
      24. return new ApiInfoBuilder()
      25. .title("网站-课程中心API文档")
      26. .description("本文档描述了课程中心微服务接口定义")
      27. .version("1.0")
      28. .contact(new Contact("java", "http://java.com", "111223@qq.com"))
      29. .build();
      30. }
      31. }
    6. 控制层,我们随便写了两个接口
      1. @RestController
      2. public class TestController {
      3. @GetMapping("/add")
      4. public Object add(User user){
      5. return user;
      6. }
      7. @PostMapping("/update")
      8. public Object update(User user){
      9. return user;
      10. }
      11. }
    7. 然后启动模块,去访问地址:
    8. http://localhost:8080/swagger-ui.html
    9. 就可以看到这个接口文档

    总结:

    • swagger我们在这个学习案例当中只是单独的用在了一个模块当中
    • 实际上,我们在其他真正要开发的模块当中,我们只需要将依赖引入进去,然后加上我们上面的那个配置类,在对应模块启动类当中加上注解@EnableSwagger2,一样的去访问对应端口的接口文档,也可以很方便的使用
    • 我们重点只需要关注依赖,配置类,和注解就OK

     

     

     

     


     

  • 相关阅读:
    高阶数据结构(2)-----红黑树(未完成)
    计算机网络第4章(网际层)----总结1
    CODESYS以文件形式保存RETAIN变量
    Java 和 JavaScript 有什么区别?
    【Kingbase8数据库】flowable兼容人大金仓Kingbase8过程
    银行业数据治理的实施路径——基于资产管理的视角
    操作系统面试常问问题--保研及考研复试
    cf:C. The Third Problem【关于排列这件事】
    jsonp是什么?原理是什么?
    【案例教学】华为云API图像搜索ImageSearch的快捷性—AI帮助您快速归类图片
  • 原文地址:https://blog.csdn.net/qq_60555957/article/details/127674164