Spring boot Swagger覆盖具有相同路径和方法但参数不同的方法
Swagger覆盖具有相同路径和方法但参数不同的方法 我有一个springboot2.3.5.RELEASE、webflux和springfox3.0.0的应用程序。我开发了两个GET方法,它们具有相同的路径但参数不同,一个不接收参数并返回列表,另一个用于findAll 情况是,Swagger只生成其中一个方法的文档,有时是列表,另一些是分页。我怎样才能告诉斯威格,它们对我来说是不同的方法和文档 我的控制器代码:Spring boot Swagger覆盖具有相同路径和方法但参数不同的方法,spring-boot,swagger,spring-webflux,springfox,Spring Boot,Swagger,Spring Webflux,Springfox,Swagger覆盖具有相同路径和方法但参数不同的方法 我有一个springboot2.3.5.RELEASE、webflux和springfox3.0.0的应用程序。我开发了两个GET方法,它们具有相同的路径但参数不同,一个不接收参数并返回列表,另一个用于findAll 情况是,Swagger只生成其中一个方法的文档,有时是列表,另一些是分页。我怎样才能告诉斯威格,它们对我来说是不同的方法和文档 我的控制器代码: @GetMapping(value = "/foo", par
@GetMapping(value = "/foo", params = {"page", "size"})
@ResponseBody
public Mono<ResponseEntity<Mono<Page<FooDTO>>>> findByFilter(FooFilterDTO filter,
@SortDefault(sort = "id", direction = Sort.Direction.DESC) @PageableDefault(value = 10) Pageable pageable) {
//...
}
@GetMapping(value = "/foo")
@ResponseBody
public Mono<ResponseEntity<Flux<FooDTO>>> findAll() {
//...
}
@GetMapping(value=“/foo”,params={“page”,“size”})
@应答器
公共Mono findByFilter(FooFilterTo filter,
@SortDefault(sort=“id”,direction=sort.direction.DESC)@PageableDefault(value=10)pageablepageable{
//...
}
@GetMapping(value=“/foo”)
@应答器
公共Mono findAll(){
//...
}
我的昂首阔步配置:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Value("${app.version}")
private String version;
@Bean
public Docket docketUsersV1() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(this.fooApiInfo())
.enable(true)
.groupName("foo-api")
.securityContexts(Arrays.asList(securityContext()))
.securitySchemes(Arrays.asList(apiKey()))
.select()
.paths(fooPaths())
.build();
}
private ApiInfo fooApiInfo() {
return new ApiInfoBuilder()
.title("Reactive Foo")
.description("Reactive API")
.version(appVersion)
.build();
}
private Predicate<String> fooPaths() {
return regex("/foo.*");
}
}
@配置
@使能招摇过市2
公共类招摇过市配置{
@值(“${app.version}”)
私有字符串版本;
@豆子
公共摘要摘要摘要1(){
返回新摘要(DocumentationType.SWAGGER_2)
.apinfo(this.fooApiInfo())
.enable(真)
.groupName(“foo-api”)
.securityContext(Arrays.asList(securityContext()))
.securitySchemes(Arrays.asList(apiKey()))
.选择()
.path(fooPaths())
.build();
}
私有apinfo fooApiInfo(){
返回新的ApiInfoBuilder()
.标题(“反应性食品”)
.说明(“反应性API”)
.版本(appVersion)
.build();
}
私有谓词路径(){
返回正则表达式(“/foo.*”);
}
}
据我所知,每个HTTP谓词(GET、POST…)只能定义一个API路径,与API使用者发送的可选参数无关
我的建议是使用可选参数page
和size
(即不需要)定义单个GET/foo路径
然后我会在控制器中有一个入口点函数,然后重定向到每个
findByFilter
私有方法或findAll
私有方法,这取决于page
&size
是否定义。据我所知,您只能通过每个HTTP动词(GET,POST…)定义一个API路径,独立于API使用者发送的可选参数
我的建议是使用可选参数page
和size
(即不需要)定义单个GET/foo路径
然后我会在控制器中有一个入口点函数,然后重定向到每个
findByFilter
私有方法或findAll
私有方法,这取决于page
&size
是否定义了,虽然我对OpenAPI有一些经验,但我从未使用过Spring。Spring允许您在同一路径和HTTP方法下定义多个java方法,并设置条件来选择使用哪个方法。最后,我必须将这两种方法统一在一个方法中,并根据参数检索列表或页面。谢谢。我本想写一些代码来说明我的观点,但是虽然我有一些OpenAPI(Swagger)的经验,但我从来没有使用过Spring。嗨,这就是我最终要做的。Spring允许您在同一路径和HTTP方法下定义多个java方法,并设置条件来选择使用哪个方法。最后,我必须将这两种方法统一在一个方法中,并根据参数检索列表或页面。非常感谢。