Java集成swagger文档组件

网友投稿 234 2022-10-16


Java集成swagger文档组件

一:简介

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。

二:集成swagger

1.引入pom.xml文件包(导入4个jar包)

注意:jdk1.8以上才能运行swagger2

io.springfox

springfox-swagger2

2.8.0

io.springfox

springfox-swagger-ui

2.8.0

com.github.xiaoymin

knife4j-spring-boot-starter

2.0.4

javax.xml.bind

jaxb-api

2.3.0

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 defaultAuth() {

AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");

AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];

authorizationScopes[0] = authorizationScope;

return newArrayList(new SecurityReference("token", authorizationScopes));

}

private List securityContexts() {

return newArrayList(SecurityContext.builder().securityReferences(defaultAuth())

.forPaths(PathSelectors.regex("^(?!auth).*$")).build());

}

private List 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");

}

}

三:配置运用swagger

1. http://ip:port/swagger-ui.html

2. http://ip:port/doc.html


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:网络分流器|3G/LTE业务采集|移动互联网采集器-专业版
下一篇:死磕 java同步系列之synchronized解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~