gpt4 book ai didi

java - 从 Swagger 模型中排除实体

转载 作者:行者123 更新时间:2023-12-04 08:38:11 25 4
gpt4 key购买 nike

我们正在使用 Swagger 用 Spring 注释对 API 进行建模:

@Operation(summary = "Creates a post for given user.")
@PostMapping("/post")
open fun createPost(
@RequestParam("userId") user: User,
)
我们遇到的问题是 Swagger 不知道背后有什么逻辑,我们只是通过了 userId: Long Hibernate 为其加载用户。 User的型号包含多个 @OneToOne , @ManyToOne , @OneToMany与其他实体的关系和 Swagger 构建了 User 的模型与他们所有人。这导致模型非常庞大,我们的一些 Swagger 文档甚至无法在浏览器中加载,因为模型的大小为兆字节。
有没有办法告诉 Swagger:
  • 忽略特定实体
  • 强制执行不同的类型(在本例中为 Long )

  • 理想情况下是这样的:
    @Operation(summary = "Creates a post for given user.")
    @PostMapping("/post")
    open fun createPost(
    @SwaggerType(Long::class)
    @RequestParam("userId")
    user: User,
    )

    最佳答案

    最干净的方法是使用带有备用类型规则的 Springfox。请参见此处给出的示例中的第 10 项:
    https://springfox.github.io/springfox/docs/current/#springfox-spring-mvc-and-spring-boot
    这使您可以用 完全替换您的 User 类。任何 您想要向 Swagger 用户显示的其他(假)类,而不用变通方法污染您的模型 - 但仍然在您的代码中保持透明。

    关于java - 从 Swagger 模型中排除实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64693548/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com