这有点奇怪。springdoc-openapi-ui v1.2.32,生成的文档仅包含控制器内的少数映射。
例子:
@Operation(
summary = "Foo",
description = "Foo"
)
@PostMapping(path="/v1/foo")
public ResponseEntity<ResponseObject> postFoo(@RequestBody FooRequestObject searchRequest, HttpServletRequest request){ ... }
@Operation(
summary = "Bar",
description = "Bar"
)
@GetMapping(path="/v1")
public ResponseEntity<ResponseObject> getBar(@RequestBody BarRequestObject request, HttpServletRequest request){ ... }
@Operation(
summary = "Bar",
description = "Bar"
)
@PostMapping(path="/v1")
public ResponseEntity<ResponseObject> postBar(@RequestBody BarRequestObject request, HttpServletRequest request){ ... }
文档只为postBar
和getBar
服务生成,其他路径被忽略。
我试过的:
- 最初这两种 POST 方法都被命名为
post
. 我重命名以避免冲突。 - 我没有设置控制器级别的路径。
- 检查注释导入
- 未命中文档的缓存版本
如果我向控制器添加另一个服务(带有或不带有注释标记),它也不会显示在生成的 Swagger 中。例如:
@GetMapping(path="/test")
public String getTest(){
return "test";
}
如果我将此方法添加到全新的控制器,则会生成 doc。
谢谢
编辑 配置类
@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI springOpenAPI() {
return new OpenAPI()
.info(new Info().title("My API")
.description("My API service documentation. ")
.version("v1.0")
.license(new License().name("Terms of Use").url("https://myapi.com/terms.html")));
}
}