随笔Swagger2在SpringBoot中的使用

Swagger是什么?

Swagger2是一个用于生成、描述和调用RESTful风格的Web服务的框架。它可以帮助开发者快速编写和维护接口文档,提高团队协作的效率。它还可以通过页面展示所有的接口,并且支持在线测试,方便调试和验证。Swagger2遵循了OpenAPI规范,是一种通用的接口定义语言。简而言之,就是在一个Swager已经帮您写好的页面中使用你写的接口查看接口是否可以使用,可以节省后端开发时不用在编辑前端页面用于调试后端接口的时间。

Swagger如何在SpringBoot项目中使用呢?

第一步:先在pom文件中引用依赖

<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>

第二步:设置配置类,使用@EnableSwagger2开启,并创建一个Docket对象

注:

DocumentationType.SWAGGER_2:用于指定文档的类型为Swagger2,表示该文档遵循了Swagger2或OpenAPI 2.0的规范。

.groupName(“webApi”):用于设置该文档的分组名称为webApi,表示该文档属于webApi这个分组,可以用来区分不同的文档。

.apiInfo(webApiInfo()):用于设置该文档的基本信息,如标题、描述、版本、联系人等,这些信息会显示在文档的页面上。

.select():用于返回一个ApiSelectorBuilder对象,表示开始选择API的路径和方法。

.paths(Predicates.not(PathSelectors.regex(“/error.*”))):用于设置该文档只包含不以/error开头的路径,表示过滤掉错误页面的接口。

.build():用于构建并返回一个Docket对象,表示完成文档的配置。

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket webApiConfig(){

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
//                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))//如果包含/admin/路径不显示
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build();

    }

    private ApiInfo webApiInfo(){

        return new ApiInfoBuilder()
                .title("xxx文档")
                .description("本文档描述了xxxxx")
                .version("1.0")//文档版本
                .contact(new Contact("xxxx", "url", "联系方式"))
                .build();
    }
}

第三步,在接口或者返回的类使用swagger相关的注解,生成更加明确宜读的文档,不然就看接口名认功能了。

@Api:用于标记控制器类上,表示该类是Swagger的资源,可以用来设置接口的分组、描述、作者等信息。

@ApiOperation:用于标记控制器方法上,表示该方法是一个API操作,可以用来设置接口的名称、描述、响应类型等信息。

@ApiParam:用于标记控制器方法的参数上,表示该参数是一个API参数,可以用来设置参数的名称、描述、是否必填、默认值等信息。

@ApiModel:用于标记实体类上,可以用来设置模型的名称、描述、属性等信息,表示API模型

@ApiModelProperty:用于标记实体类的属性上使用,表示该属性是一个API模型属性,可以用来设置属性的名称、描述、是否必填、示例值等信息。

@ApiImplicitParam:用于标记控制器方法的隐式参数,表示该参数是一个API隐式参数,可以用来设置参数的名称、描述、数据类型、参数类型、是否必填、默认值等信息。

@ApiImplicitParams:用于将多个@ApiImplicitParam注解包装为一个注解,方便管理和使用。

@ApiResponse:用于标记控制器方法的响应信息,表示该方法返回一个API响应,可以用来设置响应的状态码、描述、数据类型等信息

@ApiResponses:用于将多个@ApiResponse注解包装为一个注解,方便管理和使用

@ApiIgnore:用于忽略某个控制器类或方法,表示该类或方法不会被Swagger扫描和展示。

第四步,输入http://地址/swagger-ui.html就可以访问文档页面。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值