spring boot 集成 Swagger 接口文档详解编程语言

1.添加依赖

<!-- Swagger --> 
<dependency> 
    <groupId>io.springfox</groupId> 
    <artifactId>springfox-swagger2</artifactId> 
</dependency> 
<dependency> 
    <groupId>io.springfox</groupId> 
    <artifactId>springfox-swagger-ui</artifactId> 
</dependency>

2.在 Spring Boot 配置文件中添加配置参数

swagger: 
  title: API标题 
  description: API描述 
  version: 1.0 
  terms-of-service-url: http://www.javastack.cn/ 
  base-package: cn.javastack.test.web 
  contact: 
    name: Javastack 
    url: http://www.javastack.cn/ 
    email: [email protected]

3.创建配置类:

  

@Getter 
@Setter 
@Configuration 
@EnableSwagger2 
@ConditionalOnClass(EnableSwagger2.class) 
@ConfigurationProperties(prefix = "swagger") 
public class SwaggerConfig { 
 
    /** 
     * API接口包路径 
     */ 
    private String basePackage; 
 
    /** 
     * API页面标题 
     */ 
    private String title; 
 
    /** 
     * API描述 
     */ 
    private String description; 
 
    /** 
     * 服务条款地址 
     */ 
    private String termsOfServiceUrl; 
 
    /** 
     * 版本号 
     */ 
    private String version; 
 
    /** 
     * 联系人 
     */ 
    private Contact contact; 
 
    @Bean 
    public Docket api() { 
        return new Docket(DocumentationType.SWAGGER_2) 
                .apiInfo(apiInfo()) 
                .select() 
                .apis(RequestHandlerSelectors.basePackage(basePackage)) 
                .paths(PathSelectors.any()) 
                .build(); 
    } 
 
    private ApiInfo apiInfo() { 
        return new ApiInfoBuilder() 
                .title(title) 
                .description(description) 
                .termsOfServiceUrl(termsOfServiceUrl) 
                .version(version) 
                .contact(contact) 
                .build(); 
    } 
 
}

Swagger 默认会根据配置的包,扫描所有接口并生成对应的 API 描述和参数信息,但这样不是很直观,需要对每个接口和参数进行自定义描述

注解名称 使用说明
@Api 描述一个 API 类
@ApiImplicitParam 描述一个请求参数
@ApiImplicitParams 描述一组请求参数
@ApiModel 描述一个返回的对象
@ApiModelProperty 描述一个返回的对象参数
@ApiOperation 描述一个 API 方法
@ApiParam 描述一个方法的参数
@ApiResponse 描述一个请求响应
@ApiResponses 描述一组请求响应
@Api(description = "登录接口") 
@RestController 
public class LoginController { 
 
    @ApiOperation(value = "登录", httpMethod = "POST") 
    @ApiImplicitParams({ 
            @ApiImplicitParam(name = "username", value = "用户名", dataType = "string", paramType = "query"), 
            @ApiImplicitParam(name = "password", value = "密码", dataType = "string", paramType = "query")}) 
    @PostMapping(value = "/login") 
    public Object login(@RequestParam("username") String username, @RequestParam("password") String password) { 
 
        // ... 
 
    } 
}

访问:http://localhost:8080/swagger-ui.html,可以看到所有的 API 接口定义,也可以在上面发起接口测试

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/18566.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论