当前位置: 首页 > 知识库问答 >
问题:

如何使用Spring Boot设置SpringFox以显示两个(或更多)版本的Rest API?

颛孙安康
2023-03-14
@Override
@PostMapping(
        produces = "application/vnd.company.v1+json")
public ResponseEntity<User> createUser(
@Override
@PostMapping(
        produces = "application/vnd.company.v2+json",
        consumes = "application/vnd.company.v2+json")
public ResponseEntity<User> createUserVersion2(

共有1个答案

逑何平
2023-03-14

这很简单。只需为每个版本创建一个Docket。

例如,第一个版本:

@Bean
public Docket customImplementation(
        @Value("${springfox.documentation.info.title}") String title,
        @Value("${springfox.documentation.info.description}") String description) {

    return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo(title, description, "1.0"))
            .groupName("v1")
            .useDefaultResponseMessages(false)
            .securitySchemes(newArrayList(apiKey()))
            .pathMapping("/api")
            .securityContexts(newArrayList(securityContext())).select()
            .apis(e -> Objects.requireNonNull(e).produces().parallelStream()
                    .anyMatch(p -> "application/vnd.company.v1+json".equals(p.toString())))
            .paths(PathSelectors.any())
            .build();
}

对于第二版:

@Bean
public Docket customImplementationV2(
        @Value("${springfox.documentation.info.title}") String title,
        @Value("${springfox.documentation.info.description}") String description) {

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo(title, description, "2.0"))
                .groupName("v2")
                .select()
                .apis(e -> Objects.requireNonNull(e).produces()
                        .parallelStream()
                        .anyMatch(p -> "application/vnd.company.v2+json".equals(p.toString())))
                .build();
}
 类似资料:
  • 我有一个rest应用程序,它使用带有tomcat嵌入的spring boot 1.4.2 在客户端,用户可以通过网络摄像头拍照并保存到服务器。 在服务器端,我保存img的例子: /home/test/img/ 在我的Web应用程序中,我需要设置什么才能显示图像?

  • 问题内容: 我们有一个新的应用程序,需要glibc 2.4(来自gcc 4.1)。我们运行的机器具有gcc 3.4.6。我们无法升级,并且应用程序必须在此计算机上运行。 我们安装了gcc 4.1,但是在编译时,它使用的是3.4.6中的所有include等。 我们如何解决这个问题? 关于仅将此应用程序使用4.1的任何建议? 问题答案: 请参阅“如何安装GCC的多个版本” 这里的GNU GCC FAQ

  • 我的机器中有两个xampp版本,一个是php版本5.4,另一个是7.1(最近安装的)。我通常使用composer命令下载laravel。以前我下载时得到了laravel 5.0.X版本,因为我的php vesrion(5.4),但即使在安装了新的xampp(具有php版本7)之后,composer也只下载了laravel 5.0.X。当我检查我的php版本时,它显示了5.4,现在我如何选择或将最新

  • 问题内容: 同时绘制两个图形时出现了一些麻烦,没有在一个图中显示。但是根据文档,我编写了代码,只有图1所示。我想也许我失去了一些重要的东西。有人可以帮我弄清楚吗?谢谢。(代码中使用的 tlist_first 是数据列表。) 问题答案: 除了在脚本末尾调用之外,还可以分别控制每个图形,分别执行以下操作: 在这种情况下,您必须打电话保持数字有效。这样,您可以动态选择要显示的数字 注意:在Python

  • 我有Python 3.6。5和Python 3.7。4.已安装。 给我3.6,而 给我3.7。PyCharm中的运行代码表明它仍在使用3.6。如何更新它以开始使用3.7和/或删除3.6? 我环顾了很多其他论坛,但到目前为止,似乎没有什么与这个具体问题相关。

  • 如何在Mac上更改Java的默认版本?