如何将文件的引用传递给 OpenApi 3 中的 ref

问题描述

我有一个通用类型的 ResponseEntity 类

Class ResponseEntity<T> {
   Integer status;
   String message;
   T payload;
}

我有一个控制器

//This is a declarative client which calls the internal-api for user data.
@Inject
UserRespositoryClient userRepoClient;

@ApiResponse(
    responseCode = "200",description = "Get a user by its id.",content = @Content(
        schema = @Schema(
            ref = "resources/schemas.yml#/components/schemas/User",),)
)
@Get("user/{?userId}")
Single<ResponseEntity<?>> getUser(String userId) {
    return userRepoClient.getUserById(userId); 
}

现在,因为我们已经在 ResponseEntity 类中传递了通配符 (?) 作为泛型类型。一世 知道在泛型中传递通配符类型不好,但是来自泛型的数据 内部 apis 是动态的,所以,我可能无法创建模型类并且必须传递通配符类型,但是由于这个 OpenApi 无法创建一个很明显的架构,所以在架构部分的 swagger ui 中显示一个空对象像这样

swagger ui empty object example image

所以,我创建了一个 schema.yml 文件,我在其中编写了用户架构和 在 schema ref 中传递 schema.yml 文件的引用,如下所示:

schema = @Schema(
            ref = "resources/schemas.yml#/components/schemas/User",)

我的 yml 文件目录是这样的 Yml file directory example image

但由于某种原因,不知道为什么找不到文件。没有错误发生。没有消息来。 没有什么!是我没有正确传递引用还是有其他方法可以做到这一点或 可能是更好的解决方案?

顺便说一句,我使用的是 java --version: 11 和 Micronaut --version: 2.5.4

谢谢:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)