微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何将文件的引用传递给 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 举报,一经查实,本站将立刻删除。