關(guān)于SpringfoxSwagger詳細(xì)使用,這里不過(guò)多敘述,可自行通過(guò)下面地址查閱
GitHub:https://github.com/springfox/springfox
在說(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的分組接口是用過(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í)例接口是根據(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ō)明 |
更多建議: