關于SpringfoxSwagger詳細使用,這里不過多敘述,可自行通過下面地址查閱
GitHub:https://github.com/springfox/springfox
在說swagger-bootstrap-ui的代碼之前,先看Springfox-Swagger提供的2個接口,swagger-bootstrap-ui包也是根據(jù)這2個接口來動態(tài)生成文檔的
分組接口:/swagger-resources
詳情實例接口:/v2/api-docs
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 | 該屬性定義了所有響應的類屬性說明 |
更多建議: