Swagger使用说明

1 Swagger的出现

在前后端分离的项目中,后端开发者需要向前端或者其他后端开发者提供接口文档。实际工作中提供一份完整准确的接口文档是一件异常花费时间精力的事情。为了解决问题可以采用Swagger来提供在线的接口文档,通过在代码中写注解可以明显提升文档质量。
在这里插入图片描述

2 在项目中加入Swagger

  • pom.xml
    在pom文件中添加添加Swagger依赖的jar包
<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>
  • 配置文件
    编写Swagger配置文件并启用Swagger
@Configuration
@EnableSwagger2
public class SwaggerConfig extends WebMvcConfigurationSupport{
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .pathMapping("/")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.css.gxb.repservices.control"))
                .paths(PathSelectors.any())
                .build().apiInfo(new ApiInfoBuilder()
                        .title("标题")
                        .description("测试描述")
                        .version("1.0")
                        .contact(new Contact("","www.baidu.com","a_strategy@163.com"))
                        .license("接口文档")
                        .licenseUrl("http://www.baidu.com")
                        .build());
    }
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 解决静态资源无法访问
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/");
        // 解决swagger无法访问
        registry.addResourceHandler("/swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        // 解决swagger的js文件无法访问
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("springboot利用swagger构建api文档")
                .description("简单优雅的restful风格,http://blog.csdn.net/forezp")
                .version("1.0")
                .build();
    }

}

3 常见的Swagger注解的使用

3.1 分类

本文按三个维度划分了Swagger注解,分类如下图所示:

在这里插入图片描述

3.2 注解使用说明

3.2.1 @Api

说明:

@Api:用在请求的类上,说明该类的作用
    tags="说明该类的作用"
    value="该参数没什么意义,所以不需要配置"(亲测没什么用途)

示例:
在这里插入图片描述
结果:
在这里插入图片描述

3.2.2 @ApiModel、@ApiModelProperty

说明:

@ApiModel:用于响应类上,表示一个返回响应数据的信息
@ApiModelProperty:用在属性上,描述响应类的属性

示例:
在这里插入图片描述
结果:
在这里插入图片描述

3.2.3 @ApiOperation

说明:

@ApiOperation:"用在请求的方法上,说明方法的作用"
    value="说明方法的作用"
    notes="方法的备注说明"

示例:
在这里插入图片描述

结果:
在这里插入图片描述

3.2.4 @ApiImplicitParams、@ApiImplicitParam

说明:

@ApiImplicitParams:用在请求的方法上,表示一组参数说明
@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
        name:参数名
        value:参数的汉字说明、解释
        required:参数是否必须传
        paramType:参数放在哪个地方
            · header 
            · query 
            · path
            · body
            · form(不常用)    
        dataType:参数类型,默认String,其它值dataType="Integer"       
        defaultValue:参数的默认值

示例:

  • 单个参数
    在这里插入图片描述
  • 多个参数
    在这里插入图片描述
    注意:paramType必须和参数注解向匹配
    header --> @RequestHeader
    query --> @RequestParam
    path(用于restful接口)–> @PathVariable
    body -->@RequestBody
    form -->@RequestBody

结果:

  • 单个参数
    在这里插入图片描述
  • 多个参数(没有做相应的实验,效果应该和单参数的差不多,后台都可以读到对应的参数值)
    略;

4 总结

其实归根到底,使用Swagger,就是把相关的信息存储在它定义的描述文件里面(yml或json格式),再通过维护这个描述文件可以去更新接口文档,以及生成各端代码。而Springfox-swagger,则可以通过扫描代码去生成这个描述文件,连描述文件都不需要再去维护了。所有的信息,都在代码里面了。代码即接口文档,接口文档即代码。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Swagger 是一个开源的规范和工具集,用于设计、构建、文档化和使用 RESTful API。它可以帮助开发团队更好地管理和维护 API 的开发过程和文档。 Swagger说明了如何使用 Swagger 注解来描述 API 的详细信息,包括请求地址、请求方法、数据类型、返回值等。它提供了一种简单、直观的方式,使开发者能够快速理解和使用 API。 在 Swagger 类中,我们可以使用以下注解来描述 API: - @Api:用于描述整个 API 的基本信息,如标题、描述、作者等。 - @ApiOperation:用于描述一个具体的 API 操作,包括请求方法、URL、参数、返回值等。 - @ApiParam:用于描述一个 API 方法的参数,包括参数名称、数据类型、是否必填、描述等。 - @ApiResponse:用于描述一个 API 方法的返回值,包括返回值的数据类型、描述等。 - @ApiModel:用于描述一个数据模型,包括模型名称、属性等。 - @ApiModelProperty:用于描述一个数据模型的属性,包括属性名称、数据类型、描述等。 通过使用这些注解,开发人员可以在代码中直接定义和描述 API,而无需单独编写文档。Swagger 类会根据这些注解自动生成 API 的文档,并提供一个可视化界面,方便开发人员查看和测试 API。 除了定义 API,Swagger 类还提供了许多其他功能,如安全认证、接口测试等。它还提供了与多种编程语言和开发框架的集成支持,使开发人员可以方便地在不同的环境中使用 Swagger。 总之,Swagger 类是一个强大的工具,可以帮助开发团队更好地管理 API 开发过程,并提供自动生成文档和可视化界面的功能,极大地提高了 API 的开发效率和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值