您好,登錄后才能下訂單哦!
這篇文章主要介紹了Java如何集成swagger文檔組件,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
??Swagger 是一個規范和完整的框架,用于生成、描述、調用和可視化 RESTful 風格的 Web 服務。總體目標是使客戶端和文件系統作為服務器以同樣的速度來更新。文件的方法,參數和模型緊密集成到服務器端的代碼,允許API來始終保持同步。Swagger 讓部署管理和使用功能強大的API從未如此簡單。
1.引入pom.xml文件包(導入4個jar包)
注意:jdk1.8以上才能運行swagger2
<!--swagger--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.8.0</version> </dependency> <!--swagger-ui--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.8.0</version> </dependency> <!--swagger-ui增強--> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.4</version> </dependency> <!--swagger-xml bind--> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency>
2.要想使用Swagger,必須編寫一個配置類來配置 Swagger,這里的配置類如下
@Configuration @EnableSwagger2 public class SwaggerConfig { private String title = "標題.."; private String description = ""; private String termsOfServiceUrl = ""; private String version = "版本號.."; @Bean public Docket createDefaultRestApi() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select() .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()) .build().groupName("default").securitySchemes(securitySchemes()).securityContexts(securityContexts()); } @Bean public Docket createTestRestApi() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select() .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.ant("/test/**")).build().groupName("測試/調試").securitySchemes(securitySchemes()) .securityContexts(securityContexts()); } private ApiInfo apiInfo() { return new ApiInfoBuilder().title(title).description(description).termsOfServiceUrl(termsOfServiceUrl) .version(version).build(); } private List<SecurityReference> defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; return newArrayList(new SecurityReference("token", authorizationScopes)); } private List<SecurityContext> securityContexts() { return newArrayList(SecurityContext.builder().securityReferences(defaultAuth()) .forPaths(PathSelectors.regex("^(?!auth).*$")).build()); } private List<ApiKey> securitySchemes() { return newArrayList(new ApiKey("token", "token", "header")); } }
3.集成RESTful風格接口示例
@Api(tags = "測試") @RestController public class TestController { @ApiOperation("get方法") @GetMapping("getInfo") public void getInfo(){ } }
4.控制臺打印路徑地址(可選配置)
@Slf4j @SpringBootApplication public class SpringbootApplication implements ApplicationRunner { public static void main(String[] args) { SpringApplication.run(SpringbootApplication.class, args); } @Autowired Environment environment; @Override public void run(ApplicationArguments args) throws Exception { log.info("項目已啟動,端口:" + environment.getProperty("local.server.port")); log.info("swagger文檔地址:http://localhost:" + environment.getProperty("local.server.port") + "/swagger-ui.html"); log.info("swagger文檔地址:http://localhost:" + environment.getProperty("local.server.port") + "/doc.html"); } }
1. http://ip:port/swagger-ui.html
2. http://ip:port/doc.html
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Java如何集成swagger文檔組件”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。