目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

X

swagger

官网

https://swagger.io/

借助 Swagger 开源和专业工具集,为用户,团队和企业简化 API 开发。

依赖

在项目中使用 Swagger 需要 springbox

  • swagger2
  • ui

SpringBoot 集成 Swagger

快速入门

  1. 新建 SpringBoot 项目

  2. mvnrepository.com 仓库搜索 springfox-swagger,找到坐标 :Springfox Swagge UI、Springfox Swagger2

     1<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
     2<dependency>
     3    <groupId>io.springfox</groupId>
     4    <artifactId>springfox-swagger2</artifactId>
     5    <version>2.9.2</version>
     6</dependency>
     7
     8<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
     9<dependency>
    10    <groupId>io.springfox</groupId>
    11    <artifactId>springfox-swagger-ui</artifactId>
    12    <version>2.9.2</version>
    13</dependency>
    14
    
  3. 编写一个 Hello 工程

     1package com.kuang.swagger.controller;
     2
     3import org.springframework.web.bind.annotation.GetMapping;
     4import org.springframework.web.bind.annotation.RequestMapping;
     5import org.springframework.web.bind.annotation.RestController;
     6
     7@RestController
     8public class HelloController {
     9
    10    @RequestMapping(value = "/hello")
    11    public String hello() {
    12        return "hello";
    13    }
    14}
    
  4. 集成 Swagger

     1package com.kuang.swagger.config;
     2
     3import org.springframework.context.annotation.Configuration;
     4import springfox.documentation.swagger2.annotations.EnableSwagger2;
     5
     6@Configuration
     7@EnableSwagger2 //开启Swagger2
     8public class SwaggerConfig {
     9
    10}
    
  5. 测试运行:http://localhost:8080/swagger-ui.html

配置 Swagger

Swagger 的 bean 实例 Docket;

 1package com.kuang.swagger.config;
 2
 3import org.springframework.context.annotation.Bean;
 4import org.springframework.context.annotation.Configuration;
 5import springfox.documentation.builders.RequestHandlerSelectors;
 6import springfox.documentation.service.ApiInfo;
 7import springfox.documentation.service.Contact;
 8import springfox.documentation.spi.DocumentationType;
 9import springfox.documentation.spring.web.plugins.Docket;
10import springfox.documentation.swagger2.annotations.EnableSwagger2;
11
12import java.util.ArrayList;
13
14@Configuration
15@EnableSwagger2 //开启Swagger2
16public class SwaggerConfig {
17
18    //配置了swagger的Docket的Bean实例
19    @Bean
20    public Docket docket() {
21        return new Docket(DocumentationType.SWAGGER_2)
22                .apiInfo(apiInfo())
23                //是否启动swagger,如果为false,则swagger不能再浏览器中访问
24                .enable(false)
25                .select()
26                //扫描接口的方式
27                //basePackage 指定要扫描的包
28                //any():扫描全部
29                //none():不扫描
30                //withClassAnnotation:扫描类上的注解,参数是一个注解的反射对象 HelloController.class
31                //withMethodAnnotation:扫描方法上的注解  GetMapping.class
32                .apis(RequestHandlerSelectors.basePackage("com.kuang.swagger.controller"))
33                .build();
34    }
35
36    //配置swagger信息= apiInfo
37    private ApiInfo apiInfo(){
38        Contact contact = new Contact("王超", "123", "123");
39        return new ApiInfo(
40                "howard的SwaggerAPI文档",
41                "作者是Howard",
42                "v1.0",
43                "http://abc1024.pub",
44                contact,
45                "Apache 2.0",
46                "http://www.apache.org/licenses/LICENSE-2.0",
47                new ArrayList()
48        );
49
50    }
51
52}
53

配置文件

1application.properties
2spring.profiles.active=dev
3
4application-dev.properties
5server.port=8081
6
7application-pro.properties
8server.port=8082

访问:http://localhost:8081/swagger-ui.html


作者:Soulboy