0

我正在使用Spring Boot and REST and Open API 3实现。在这个例子中,v1Group 有 List 实现——所有数据都将进入 List,v2Group 中有分页实现——所有数据将以页面的形式出现。

对于消费者,我们不想更改端点 url 以供他们使用。

返回列表的端点。

@GetMapping(value = "/contacts", headers = {"Accept-version=v1"})
public ResponseEntity<List<Contact>> findAll() {
    List<Contact> contacts = contactService.findContactList();
    return new ResponseEntity<>(contacts, HttpStatus.OK);
}

分页端点

@GetMapping(value = "/contacts", headers = {"Accept-version=v2"})
public ResponseEntity<List<Contact>> findAll(Pageable pageable) {
    Page<Contact> contactPages = contactService.findContactPageable(pageable);
    return new ResponseEntity<>(contactPages, HttpStatus.OK);
}

我希望 V1 端点显示在中,GroupedOpenApi而 v2 端点显示在GroupedOpenApi2. 有什么建议么 ?

4

1 回答 1

1

假设您将两个端点放在不同的打包中,然后使用以下 GroupedOpenApi 定义:

@Bean
public GroupedOpenApi groupOpenApiV1() {
    return GroupedOpenApi.builder()
            .setGroup("v1")
            .packagesToScan("test.org.springdoc.api.v1")
            .build();
}

@Bean
public GroupedOpenApi groupOpenApiV2() {
    return GroupedOpenApi.builder()
            .setGroup("v2")
            .packagesToScan("test.org.springdoc.api.v2")
            .build();
}
于 2020-01-30T21:46:46.620 回答