Swagger用相同的路径和方法但不同的参数覆盖方法
我有一个带有Spring Boot 2.3.5.RELEASE,webflux和springfox 3.0.0的应用程序。我开发了两个具有相同路径但参数不同的GET方法,一个不接收参数并返回list,另一个返回findAll。
情况是,Swagger只生成其中一种方法的文档,有时是列表,有时是分页。我怎么能告诉swagger他们是不同的方法,并为我记录两者?
@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() {
//...
}
我的招摇过市配置:
@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.*");
}
}
问题内容: 我刚刚注意到,覆盖方法的行为与覆盖字段的行为不同。考虑以下代码段: 结果为: 1 值v为4 因此,似乎bar中的方法printV被foo.printV覆盖,而字段v中的方法并未被bar覆盖。有人知道这种差异的原因吗? 谢谢。 问题答案: 我刚刚注意到,覆盖方法的行为与覆盖字段的行为不同。 没有“覆盖字段”之类的东西。您可以 阴影 字段,但不能覆盖它们。字段不是多态的。有关更多详细信息,
我在Java中有两个几乎相同的方法。唯一的区别是它们有不同的参数类型。它们使用泛型并返回输入参数的类型T。我怎样才能摆脱重复的代码?下面是我的两个方法。最后,它们都使用不同的类型调用Spring。否则,方法是相同的。
当前我的控制器看起来是这样的。 有没有更简单的方法为两个不同的路径“localhost:port/members”和“localhost:port/members/index”使用一个index-method?一般情况下,我可以为一个方法注释两个值吗? 提前致谢:) 编辑:我已经看到它对@RequestMapping起作用了
我的两个方法中的操作是相同的,但是输入参数类型不同,那么我该如何优化这两个方法,似乎没有那么重复?因为它们的操作是相同的,但参数类型不同,我该怎么做才能使这段代码更优雅呢?
问题内容: 当与MySQL数据库连接时,我有几种方法可以做同样的事情,保存或加载不同类型的参数。目前,我对每种类型都有不同的方法。如何合并这些方法,以便它们支持不同的类型? 下面是两个非常相似但使用不同类型的方法的示例: 请注意,在该示例中,类型均为数字。在类型完全不同的情况下(例如int和String),如何避免使用近乎重复的方法? 问题答案: 您可以在此处应用 策略 模式。 …
B类: 如何影响这个界面?