您好,登錄后才能下訂單哦!
java中怎么集成swagger組件,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
Swagger 是一個規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)。總體目標(biāo)是使客戶端和文件系統(tǒng)作為服務(wù)器以同樣的速度來更新。文件的方法,參數(shù)和模型緊密集成到服務(wù)器端的代碼,允許API來始終保持同步。Swagger 讓部署管理和使用功能強大的API從未如此簡單。
1.引入pom.xml文件包(導(dǎo)入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 = "標(biāo)題.."; 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("測試/調(diào)試").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風(fēng)格接口示例
@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"); } }
看完上述內(nèi)容,你們掌握java中怎么集成swagger組件的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。