当前位置: 首页 > 知识库问答 >
问题:

Swagger.yaml文件项必须是对象错误

李招
2023-03-14

我将脚本中工作的 jsonschema 转换为 YAML 格式,以便使用 swagger 文档。问题是在第8行(-type:字符串)中,swagger显示错误:应该是对象,“项目”必须是对象。

      type: object
      properties:
        answers:
          type: array
          minItems: 4
          maxItems: 4
          items:
            - type: string
              enum: ['Not really', 'Slightly', 'Significantly']
            - type: string
              enum: ['Not really', 'Slightly', 'Significantly']
            - type: string
              enum: ['Not really', 'Slightly', 'Significantly']
            - type: string
              enum: ['Yes', 'No']

Json模式

        "type": "object",
        "properties": {
            "answers": {
                "type": "array",
                "items": [
                    {
                        "type": "string",
                        "enum": ["Not really", "Slightly", "Significantly"]
                    },
                    {
                        "type": "string",
                        "enum": ["Not really", "Slightly", "Significantly"]
                    },
                    {
                        "type": "string",
                        "enum": ["Not really", "Slightly", "Significantly"]
                    },
                    {
                        "type": "string",
                        "enum": ["Yes", "No"]
                    },

                ],
                "minItems": 4,
                "maxItems": 4,
            }
        },
    }

共有1个答案

余铭晨
2023-03-14

这是因为应该是一个对象(即YAML映射),但您给出了一个数组(即YAMM序列)。

您可能希望使用< code>prefixItems,因为您似乎希望将数组验证为元组:

        answers:
          type: array
          minItems: 4
          maxItems: 4
          prefixItems:
            - type: string
              enum: ['Not really', 'Slightly', 'Significantly']
            - type: string
              enum: ['Not really', 'Slightly', 'Significantly']
            - type: string
              enum: ['Not really', 'Slightly', 'Significantly']
            - type: string
              enum: ['Yes', 'No']

请参阅文档:

在草稿 4 - 2019-09 中,元组验证由 items 关键字的替代形式处理。当项是架构数组而不是单个架构时,它的行为方式与前缀项的行为方式相同。

 类似资料:
  • 我目前正在制作一个平台游戏,我被阻止碰撞...你能帮帮我吗?我实际上添加了一些方块来测试碰撞,在Perso类下创建了一个玩家。我真的需要在那个入口之后制造碰撞,并且必须精心设计重力来让玩家跳跃。这是我的代码:导入pyplay从pygame.locals导入*pygame.init() pygame.quit()

  • 这是我的代码的一部分,工作不正常,我试图设置键,使桨向上和向下移动,但我无法找出我的代码有什么问题。 错误是: 参数必须是rect样式对象

  • 问题内容: 我一直在尝试更新一个名为libpynexmo的小型Python库以与Python 3一起使用。 我一直坚持这个功能: 遇到这个问题时,json会回应: 我在一些地方读到,应该为您传递带有附件的对象(在这种情况下为对象),但是它不适用于对象。 我不知道下一步该怎么做,但是由于我的整个1500行脚本是新转换为Python 3的,所以我不想回到2.7。 问题答案: 我最近写了一个小功能来发送

  • 我创建这个类是为了更好地使用它 然后我想创建一个简单的函数来剪辑一个矩形,就像这样 但是当我将rect传递到我的函数中时,我在标题中得到了错误。我甚至还打印了字体 我想知道Rect样式的对象和Rect对象之间是否有区别,因为我太困惑了。此外,在屏幕上绘制矩形是布局tic-tac-toe GUI的最佳方式,还是绘制线条更简单。

  • 问题内容: 我有以下抛出的非常基本的代码; 我尝试将解码设置为Data变量,如下所示,但是会引发相同的错误; 有什么建议? 问题答案: 您只是将其以错误的顺序放置,是无辜的错误。 (深入解答)。正如wim礼貌地指出的那样,在极少数情况下,他们可以选择UTF-16或UTF-32。在这种情况下,对于开发人员而言,这种情况将不那么常见,在这种情况下,他们将有意识地决定放弃宝贵的带宽。因此,如果遇到编码问

  • 我正在用一个简单的游戏尝试python,但是遇到了这个错误 代码如下所示: 然后错误显示: 文件“my_code/alien_invision/bullet.py”,第15行,在init self中。rect=pygame。Rect(左=0,上=0,宽=self.settings.bullet\u width, 类型错误:参数必须是Rect样式的对象 如果我按以下方式更改该行,它将正常工作: 我不