美文网首页
Swagger接口文档生成及使用

Swagger接口文档生成及使用

作者: Sunny_0429 | 来源:发表于2019-06-10 16:26 被阅读0次

一,什么是Swagger

Swagger是一个规范和完整的框架,用于生成,描述,调用和可视化 RESTful风格的WEB服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。

Swagger的作用:

1,接口的文档在线自动生成。

2,功能测试。

二,在Maven中添加依赖

    <groupId>io.springfox</groupId>

    <artifactId>springfox-swagger2</artifactId>

    <version>2.2.2</version>

</dependency>

<dependency>

    <groupId>io.springfox</groupId>

    <artifactId>springfox-swagger-ui</artifactId>

    <version>2.2.2</version>

</dependency>

三,创建Swagger2的配置类


/**

* Swagger2配置类

* 在与spring boot 集成时,放在与Application.java同级的目录下

* 通过@Configuration注解,让spring来加载该配置

* 再通过@EnableSwagger2注解来启动Swagger2

* @author sr

* 2018-1-12

*/

@Configuration

@EnableSwagger2

public class SwaggerConfig {

@Value("${my.swagger2.enable}")

private boolean enable;

    private static final StringbasePackage ="com.ulearning.ulms";

    /**

* 创建API应用

* appinfo()增加API相关信息

* 通过select()函数返回一个ApiSelectorBuilder实例,用来控制那些接口暴露给Swagger来展现

* 本例采用置顶扫描的包路径来定义指定要建立API的目录

    * @return

    */

    @Bean

    public DocketuserApi() {

Predicate swaggerSelector = RequestHandlerSelectors

.withMethodAnnotation(ApiOperation.class);

        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())

.select()

.apis(RequestHandlerSelectors.basePackage(basePackage))

.apis(swaggerSelector).paths(PathSelectors.any()).build()

.enable(enable);

    }

/**

* 创建API的基本信息(这些基本信息会展示在文档页面中)

* 访问地址:http://项目实际地址/swagger-ui.html

    * @return

    */

    private ApiInfoapiInfo() {

return new ApiInfoBuilder().title("直播平台")

.description("直播平台文档,行业开放接入")

.license("QA").licenseUrl("qa.html")

.contact(new Contact("sr", "", ""))

.version("1.0.1").build();

    }

}

Swagger2的注解使用:

@Api:用在类上,说明该类的作用。

image

@ApiOperation:注解来给API增加方法说明。

image

@ApiImplicitParams:用在方法上包含一组参数说明。

@ApiImplicitParam:用来注解来给方法入参增加说明。

@ApiResponses: 用于表示一组响应。

@ApiResponse: 用在@ApiResponses中,一般用于表达一个错误的响应信息。

  • code:数字,例如400

    • message:信息,例如"请求参数没填好"

    • response:抛出异常的类

@ApiModel:描述一个Model的信息(一般用在请求参数无法使用@ApiImplicitParam注解进行描述的时候)

*  @ApiModelProperty:描述一个model的属性

相关文章

网友评论

      本文标题:Swagger接口文档生成及使用

      本文链接:https://www.haomeiwen.com/subject/muazxctx.html