一、swaggerconfig介紹
Swagger是一個集成了多種API文檔工具的框架,用於自動生成、描述、文檔化RESTful風格的Web服務。SwaggerConfig是Swagger的配置類,可以通過配置Swagger相關屬性來自定義Swagger的一些配置信息,如:接口文檔網址、當前系統的基本信息等等。
二、SwaggerConfig常用屬性
SwaggerConfig定義了很多屬性,這裡我們重點講解以下幾個常用的屬性。
1、apiInfo
apiInfo是Swagger文檔網站的基本信息設置,包括標題、描述、聯繫方式等信息。這些信息通常會包含在Swagger UI界面上。以下是一個apiInfo的示例:
@Bean public Docket petApi() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build() .apiInfo(new ApiInfoBuilder() .title("Petstore API") .description("API for petstore") .version("1.0.0") .build()); }
2、enable
enable屬性可用於控制Swagger是否啟用,通常情況下我們在測試環節中啟用Swagger,在生產環節中禁用Swagger。以下是一個enable的示例:
@Bean public Docket petApi() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build() .enable(true); }
3、groupName
groupName屬性用於為生成的接口文檔指定分組名,方便文檔分類和管理。以下是一個groupName的示例:
@Bean public Docket petApi() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build() .groupName("pet"); }
4、securitySchemes
securitySchemes屬性用於為接口添加安全認證方式,可以選擇Basic認證、Token認證等安全方式。以下是一個securitySchemes的示例:
@Bean public Docket petApi() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build() .securitySchemes(Arrays.asList(apiKey())) .securityContexts(Arrays.asList(securityContext())); } private ApiKey apiKey() { return new ApiKey("mykey", "api_key", "header"); } private SecurityContext securityContext() { return SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.regex("/anyPath.*")) .build(); } List defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; return Arrays.asList(new SecurityReference("mykey", authorizationScopes)); }
三、SwaggerConfig的其他屬性
除了上述常用屬性,SwaggerConfig還有很多其他的屬性可以使用。比如:useDefaultResponseMessages、ignoredParameterTypes、globalOperationParameters、directModelSubstitute、apiListingReferenceOrder、genericModelSubstitutes等等。
四、總結
通過配置SwaggerConfig,我們可以自定義Swagger的很多屬性,使接口文檔更加符合我們的需求。在編寫完API後,推薦使用Swagger框架來描述和測試你的API。Swagger可以讓每個團隊成員更好的了解API的定義,提高API的交互性,並糾正所有的誤差。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/303544.html