【问题标题】:How to use OpenApi annotations in spring-webflux RouterFunction endpoints?如何在 spring-webflux RouterFunction 端点中使用 OpenApi 注释?
【发布时间】:2020-06-12 22:05:30
【问题描述】:

我目前正在从事一个使用 Spring 功能 Web 编程的项目。我通常在 restController 中使用 swagger 2 的注释,但是对于功能性 Web 编程,我找不到在哪里!告诉应用程序搜索端点(如 Docket 中的 basepackage)并在 html 页面中加载 swagger 的地方。 这是我的代码:

@Configuration
public class RouterClient{

@Bean
public RouterFunction<ServerResponse> routes(ClientHandler client){
  return route(GET("/api/client"), client::findAll)
      .andRoute(POST("/api/client"),client::add);
  }
}

配置类:

@Configuration
public class OpenApiConfiguration{

  @Bean
    public GroupedOpenApi groupOpenApi() {
        String paths[] = {"/api/**"};
        String packagesToscan[] = {"com.demo.client"};
        return GroupedOpenApi.builder().setGroup("groups").pathsToMatch(paths).packagesToScan(packagesToscan)
                .build();
    }

}

依赖关系:

    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-webflux-core</artifactId>
        <version>1.2.32</version>
    </dependency>
    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-webflux-ui</artifactId>
        <version>1.2.32</version>
    </dependency>

结果:

【问题讨论】:

    标签: spring-boot spring-webflux openapi


    【解决方案1】:

    从 1.3.8(5 月初)开始支持功能端点。请参阅GitHub 上的发布。

    看看这个https://springdoc.org/#spring-webfluxwebmvc-fn-with-functional-endpoints

    在 Swagger UI 上查看端点的最简单方法是将 @RouterOperation 注释添加到 RouterFunction 方法(包含单个路由),并指定其中使用的 beanClassbeanMethod。但是,在您的情况下,单个方法上有多个路由,因此您还必须使用 @RouterOperations 注释。这些案例在上面的链接中有详细记录。

    目前springdoc-openapi的实现似乎只允许手动添加文档。

    【讨论】:

    【解决方案2】:

    https://springdoc.org/ 你需要 springdoc-openapi-webflux-ui 和 @RouterOperation。

    【讨论】:

      【解决方案3】:

      带有功能端点的spring-webflux,将在未来的版本中提供

      【讨论】:

        猜你喜欢
        • 2021-12-29
        • 2018-04-15
        • 1970-01-01
        • 1970-01-01
        • 2020-04-04
        • 2020-07-24
        • 2021-03-12
        • 2021-02-09
        • 2021-01-17
        相关资源
        最近更新 更多