20-Swagger 接口统一管理工具

简介:创建一个接口统一管理工具,使用简洁明了

Swagger是一个开放源代码软件框架,由大型工具生态系统支持,可帮助开发人员设计,构建,记录和使用RESTful Web服务。尽管大多数用户通过Swagger UI工具识别Swagger,但是Swagger工具集包括对自动文档,代码生成和测试用例生成的支持。

swagger的特征
1. 通过代码和注释自动生成文档。在Swagger框架下,开发人员可对服务进行归类说明,对方法,模型,返回结果等进行详细说明。方便开发人员在编写代码的同时,编写文档信息。自动生成,只需很少的编辑工作,就能获得完整的REST APIs文档

2. 提供了UI界面。既展示接口信息,又提供了参数校验,测试功能

3. 形成了文档规范,支持不同的语言4. 提供丰富的组件。

一、添加依赖

添加swagger模块,引入依赖

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.7.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.7.0</version>
</dependency>

二、添加配置类 

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket createResApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.jingdianjichi"))
                .paths(PathSelectors.any())
                .build();
    }

    public ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("ape-frame")
                .contact(new Contact("经典鸡翅", "git地址", "123@.com"))
                .version("1.0")
                .description("开箱即用的框架")
                .build();
    }
}

三、启动应用 

localhost:8000/swagger-ui.html#/

四、优化 

将配置转移到配置文件里

4.1 创建实体类 SwaggerInfo

@Component
@ConfigurationProperties(prefix = "swagger")
@Data
public class SwaggerInfo {

    private String basePackage;
    private String title;
    private String concactName;
    private String concactUrl;
    private String concactEmail;
    private String version;
    private String description;

}

 4.2 配置类引入实体   参数动态化

@Autowired
private SwaggerInfo swaggerInfo;
@Bean
public Docket createResApi() {
    return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage(swaggerInfo.getBasePackage()))
            .paths(PathSelectors.any())
            .build();
}

public ApiInfo apiInfo() {
    return new ApiInfoBuilder()
            .title(swaggerInfo.getTitle())
            .contact(new Contact(swaggerInfo.getConcactName(), swaggerInfo.getConcactUrl(), swaggerInfo.getConcactEmail()))
            .version(swaggerInfo.getVersion())
            .description(swaggerInfo.getDescription())
            .build();
}

4.3 application.yml 输入参数 配置

swagger:
  basePackage: com.jingdianjichi
  title: ape-frame
  concactName: 经典鸡翅
  concactUrl: git地址
  concactemail: 123@.com
  version: 1.0
  description: 开箱即用的框架

5 注解配置 便于接口文档展示对应信息 

5.1 @Api

@Api 注解用于标注一个Controller(Class)。在默认情况下,Swagger-Core只会扫描解析具有@Api注解的类,而会自动忽略其他类别资源(JAX-RS endpoints,Servlets等等)的注解。

5.2 @ApiOperation

@ApiOperation 注解在用于对一个操作或HTTP方法进行描述。具有相同路径的不同操作会被归组为同一个操作对象。不同的HTTP请求方法及路径组合构成一个唯一操作。

5.3 @ApiParam

@ApiParam作用于请求方法上,定义api参数的注解。  可以作用实体类字段上

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值