Springfox-Swagger說明

2019-05-30 20:55 更新

關(guān)于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的分組接口是用過后端配置不同的掃描包,將后端的接口,按配置的掃描包基礎(chǔ)屬性響應(yīng)給前端,看看分組接口響應(yīng)的json內(nèi)容:

  1. [
  2. {
  3. "name": "分組接口",
  4. "url": "/v2/api-docs?group=分組接口",
  5. "swaggerVersion": "2.0",
  6. "location": "/v2/api-docs?group=分組接口"
  7. },
  8. {
  9. "name": "默認接口",
  10. "url": "/v2/api-docs?group=默認接口",
  11. "swaggerVersion": "2.0",
  12. "location": "/v2/api-docs?group=默認接口"
  13. }
  14. ]

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

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

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

  1. @Bean(value = "defaultApi")
  2. public Docket defaultApi() {
  3. ParameterBuilder parameterBuilder=new ParameterBuilder();
  4. List<Parameter> parameters= Lists.newArrayList();
  5. parameterBuilder.name("token").description("token令牌").modelRef(new ModelRef("String"))
  6. .parameterType("header").defaultValue("abc")
  7. .required(true).build();
  8. parameters.add(parameterBuilder.build());
  9. return new Docket(DocumentationType.SWAGGER_2)
  10. .apiInfo(apiInfo())
  11. .groupName("默認接口")
  12. .select()
  13. .apis(RequestHandlerSelectors.basePackage("com.swagger.bootstrap.ui.demo.controller"))
  14. .paths(PathSelectors.any())
  15. .build().globalOperationParameters(parameters)
  16. .securityContexts(Lists.newArrayList(securityContext(),securityContext1())).securitySchemes(Lists.<SecurityScheme>newArrayList(apiKey(),apiKey1()));
  17. }
  18. @Bean(value = "groupRestApi")
  19. public Docket groupRestApi() {
  20. return new Docket(DocumentationType.SWAGGER_2)
  21. .apiInfo(groupApiInfo())
  22. .groupName("分組接口")
  23. .select()
  24. .apis(RequestHandlerSelectors.basePackage("com.swagger.bootstrap.ui.demo.group"))
  25. .paths(PathSelectors.any())
  26. .build().securityContexts(Lists.newArrayList(securityContext(),securityContext1())).securitySchemes(Lists.<SecurityScheme>newArrayList(apiKey(),apiKey1()));
  27. }

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

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

詳情實例接口

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

響應(yīng)json如下:

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號