首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于可重用枚举的声明“不应具有附加属性additionalProperty: schema”的Swagger

用于可重用枚举的声明“不应具有附加属性additionalProperty: schema”的Swagger
EN

Stack Overflow用户
提问于 2022-08-16 15:36:43
回答 1查看 439关注 0票数 0

我试图在swagger和swagger中创建一个可重用的对象,其中包括:

代码语言:javascript
运行
复制
Structural error at components.schemas.Project.properties.location
should NOT have additional properties
additionalProperty: schema
Jump to line 47

我在components/schemas部分中指定了枚举,然后使用$ref: '#/components/schemas/Registry'引用它。我试着效仿这里的例子:https://swagger.io/docs/specification/data-models/enums/

这是完整的swagger文件:

代码语言:javascript
运行
复制
openapi: 3.0.3
info:
  title: My API
  description: |-
    Blah
  contact:
    email: support@example.com
  version: 1.0.0
externalDocs:
  description: Find out more about blah
  url: http://blah.io
paths:
  /credits-received:
    post:
      tags:
        - Credits Received
      operationId: creditsReceived
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditsReceivedData'
        required: true
      responses:
        '200':
          description: Successful operation

components:
  schemas:
    CreditsReceivedData:
      required:
        - project
      type: object
      properties:
        project:
          $ref: '#/components/schemas/Project'

    Project:
      required:
        - name
        - registry
      type: object
      properties:
        name:
          type: string
          example: "Project 1"
        registry:
          type: string
          example: "My Registry"
          schema:
            $ref: '#/components/schemas/Registry'
    Registry:
      type: string
      enum:
        - My Registry 1
        - My registry 2
EN

回答 1

Stack Overflow用户

发布于 2022-08-16 15:40:43

我解决了这个问题

代码语言:javascript
运行
复制
        registry:
          type: string
          example: "My Registry"
          schema:
            $ref: '#/components/schemas/Registry'

使用

代码语言:javascript
运行
复制
        registry:
          $ref: '#/components/schemas/Registry'

基本上删除schema属性,只需将$ref直接放在属性下面(在本例中为registry)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73376617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档