<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper
为起点
因实作SmartLifecycle
会等所有的Bean准备完成,并执行实作方法start()
开始扫描Docket
建立Documentation最後放入DocumentationCache
当呼叫path/v3/api-docs
,就会回传swagger的json文件,OpenApiControllerWebMvc
是预设的API Controller
由DocumentationCache
取出Documentation处理完成後并回传,就是我们看到的json档案
@Bean
Docket docket() {
return new Docket(DocumentationType.OAS_30)
.servers(new Server("test", "http://localhost", "test",
Collections.EMPTY_LIST, Collections.EMPTY_LIST)) // 目前有些问题
.groupName("API文件")
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.app"))
.paths(PathSelectors.regex("/api/hello/.*"))
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("测试api")
.description("测试用的的api")
.contact(new Contact("Lucas", "联络的网址", "联络的mail"))
.version("1.0.0") // api的版本
.build();
}
Docket里的servers没有反应 issue
目前Docket
里的servers是被放到Documentation
的resourceListing而非Documentation
的servers,所以在controller取出Documentation
放入OpenAPI
的servers就没有改变
建立一实作WebMvcOpenApiTransformationFilter
的Bean
@Override
public OpenAPI transform(OpenApiTransformationContext<HttpServletRequest> context) {
OpenAPI openApi = context.getSpecification();
Server server = new Server();
server.setDescription("test");
server.setUrl("http://localhost");
List<Server> servers = new ArrayList<>(openApi.getServers());
servers.add(server);
openApi.setServers(servers);
return openApi;
}
@Override
public boolean supports(DocumentationType documentationType) {
return documentationType.equals(DocumentationType.OAS_30);
}
现在越来越多人使用Linux系统,所以今天会来介绍一下在Linux上使用终端机安装Python的方法...
无论是使用Tkinter、PyQt5、PySide2、PyQt6、PySide6 都没关系,在设计观...
嗨各位看官们,对~又是我! 这是第二次参加铁人赛,除了要检视自己是不是有进步以外, 也想把这一年来有...
昨日提到的一些工具都安装好之後,开发的过程中如果要增加开发效率的话还是需要一些套件的辅助,今日的文章...
一开始会参加铁人赛的原因是因为某堂课的要求(。・∀・)ノ゙ 既然都参加了当然就不能放弃这次的机会,藉...