Springfox-Swagger說(shuō)明

2019-05-30 20:55 更新

關(guān)于SpringfoxSwagger詳細(xì)使用,這里不過(guò)多敘述,可自行通過(guò)下面地址查閱

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

文檔http://springfox.io

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

分組接口:/swagger-resources

詳情實(shí)例接口:/v2/api-docs

Swagger分組

Swagger的分組接口是用過(guò)后端配置不同的掃描包,將后端的接口,按配置的掃描包基礎(chǔ)屬性響應(yīng)給前端,看看分組接口響應(yīng)的json內(nèi)容:

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

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

屬性 說(shuō)明
name 分組名稱(chēng)
url 接口url
swaggerVersion 版本號(hào)
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("默認(rèn)接口")
        .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()));
}

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

此處groupName即分組名稱(chēng),basePackage即我們寫(xiě)的接口基礎(chǔ)package包路徑.

詳情實(shí)例接口

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

響應(yīng)json如下:

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)