Springfox-Swagger說明

2019-05-30 20:55 更新

關于SpringfoxSwagger詳細使用,這里不過多敘述,可自行通過下面地址查閱

GitHub:https://github.com/springfox/springfox

文檔http://springfox.io

在說swagger-bootstrap-ui的代碼之前,先看Springfox-Swagger提供的2個接口,swagger-bootstrap-ui包也是根據(jù)這2個接口來動態(tài)生成文檔的

分組接口:/swagger-resources

詳情實例接口:/v2/api-docs

Swagger分組

Swagger的分組接口是用過后端配置不同的掃描包,將后端的接口,按配置的掃描包基礎屬性響應給前端,看看分組接口響應的json內容:

[
    {
        "name": "分組接口",
        "url": "/v2/api-docs?group=分組接口",
        "swaggerVersion": "2.0",
        "location": "/v2/api-docs?group=分組接口"
    },
    {
        "name": "默認接口",
        "url": "/v2/api-docs?group=默認接口",
        "swaggerVersion": "2.0",
        "location": "/v2/api-docs?group=默認接口"
    }
]

在Springfox-Swagger有些較低的版本中,并沒有l(wèi)ocation屬性,高版本會有該屬性

屬性 說明
name 分組名稱
url 接口url
swaggerVersion 版本號
location 接口location,同url屬性

分組的后端Java配置代碼如下:

@Bean(value = "defaultApi")
public Docket defaultApi() {
    ParameterBuilder parameterBuilder=new ParameterBuilder();
    List<Parameter> parameters= Lists.newArrayList();
    parameterBuilder.name("token").description("token令牌").modelRef(new ModelRef("String"))
        .parameterType("header").defaultValue("abc")
        .required(true).build();
    parameters.add(parameterBuilder.build());


    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(apiInfo())
        .groupName("默認接口")
        .select()
        .apis(RequestHandlerSelectors.basePackage("com.swagger.bootstrap.ui.demo.controller"))
        .paths(PathSelectors.any())
        .build().globalOperationParameters(parameters)
        .securityContexts(Lists.newArrayList(securityContext(),securityContext1())).securitySchemes(Lists.<SecurityScheme>newArrayList(apiKey(),apiKey1()));
}
@Bean(value = "groupRestApi")
public Docket groupRestApi() {
    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(groupApiInfo())
        .groupName("分組接口")
        .select()
        .apis(RequestHandlerSelectors.basePackage("com.swagger.bootstrap.ui.demo.group"))
        .paths(PathSelectors.any())
        .build().securityContexts(Lists.newArrayList(securityContext(),securityContext1())).securitySchemes(Lists.<SecurityScheme>newArrayList(apiKey(),apiKey1()));
}

以上詳細配置可參考碼云swagger-bootstrap-ui-demo在線SwaggerConfiguration.java

此處groupName即分組名稱,basePackage即我們寫的接口基礎package包路徑.

詳情實例接口

詳情實例接口是根據(jù)分組名稱,動態(tài)獲取該組下配置的basePackage所有的接口描述信息

響應json如下:

屬性 說明
info 定義的該分組一些基礎信息,包括標題、簡介、聯(lián)系人等
tags 該屬性是分組屬性,與后端的@Api注解對應
paths 接口示例數(shù)組,每個實例包含了接口的入?yún)?、出參、響應碼等基礎信息
securityDefinitions 權限配置驗證,一般JWT等配置的權限配置會在該節(jié)點屬性出現(xiàn)
definitions 該屬性定義了所有響應的類屬性說明
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號