1

我在OpenAPI Reference中没有看到任何与此相关的具体内容,所以我想在这里请求确认。

假设我有以下数据的参考:

    components:
      schemas:
        Foobar:
          type: object
          properties:
            timestamp:
              type: number
            uid:
              type: number
            username:
              type: string
            location:
              type: string

是否可以引用此组件但仅从内部获取特定属性,例如uidand username,并排除其余部分?例如

$ref: '#/components/schemas/Foobar(uid,username)'

我的用例是我有一个库调用,它从数据库中返回记录,根据用户输入根据需要添加(或删除)其他记录。所以我们可以myCall(['username']);只返回用户名,并myCall(['username', 'location']);返回用户名和位置。

如果我想在我的 API 中正确记录它的各种用法,我目前必须手动维护输出的所有不同变体。

我希望我可以制作一些我可以引用的“灵活”组件,并让它在 OpenAPI 规范中仍然有效。

我能找到的最接近的是将所有属性包装在anyOf

    components:
      schemas:
        Foobar:
          anyOf:
            - type: object
              properties:
                timestamp:
                  type: number
                uid:
                  type: number
                username:
                  type: string
                location:
                  type: string

...但是如果用 ReDoc 之类的东西解析,它只会显示输出将是任何列出的属性,而我实际上需要能够声明“在任何这些属性中,将输出以下内容”。

我猜我的用例有点深奥,但我希望被证明是错误的:)

4

0 回答 0