首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保留相同的URL,但在Spring Boot REST Open API 3中更改合同?

保留相同的URL,但在Spring Boot REST Open API 3中更改合同?
EN

Stack Overflow用户
提问于 2020-01-30 13:57:17
回答 1查看 165关注 0票数 0

我使用的是Spring Boot and REST and Open API 3实现。在这个例子中,v1组有List实现-所有数据都将在List中,在v2组有分页实现-所有数据都将以页的形式出现。

对于消费者,我们不想更改端点url来让它们被消费。

返回list的端点。

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

带分页的端点

代码语言:javascript
复制
@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中显示。有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-31 05:46:47

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

代码语言:javascript
复制
@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();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59979878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档