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

使用Swagger 2.0和YAML将数组放入对象内部

苏鸿羽
2023-03-14

我目前正在学习如何使用Swagger文档,因为我的公司正在评估使用它作为即将到来的项目文档的标准方式。

我在网上读到,使用YAML比使用JSON更容易阅读,而且由于YAML是JSON的一个子集,所以我认为这是可以的。

我正在处理200代码的响应,我想表示类似于以下结构的内容:

responses:
    200:
      description: OK.
      schema:
        title: response
        type: object
        items:
          properties:
            title: user
            type: array
            items:
                id:
                  type: string
                name:
                  type: string
            status:
              type: integer

基本上,我返回一个名为“响应”的对象,它包含两个变量:一个名为“用户”的数组,它包含几个字符串(为了清晰起见,我只包含了两个),另一个变量(在“用户”数组之外),名为“状态”,它包含一个整数。

上面的代码不起作用,编辑器通知我它不是“有效的响应定义”。

我不知道如何解决这个问题。如果你能帮我做错事,我将不胜感激。

共有1个答案

邹野
2023-03-14

基本上,我返回一个名为“响应”的对象,它包含两个变量:一个名为“用户”的数组,它包含几个字符串(为了清晰起见,我只包含了两个),另一个变量(在“用户”数组之外),名为“状态”,它包含一个整数。

根据您的描述,响应应该如下所示(假设响应是JSON)。基本上,您有一个具有嵌套对象的对象:

{
  "user": {
    "id": "12345",
    "name": "Alice"
  },
  "status": 0
}

该响应可定义如下:

      responses:
        200:
          description: OK.
          schema:
            title: response
            type: object
            required: [user, status]
            properties:
              user:
                type: object
                required: [id, name]
                properties:
                  id:
                    type: string
                  name:
                    type: string
              status:
                type: integer

为了方便起见,具有嵌套对象的复杂模式可以分解为单个对象模式。模式可以在全局定义部分中编写,并通过$ref从其他地方引用。例如,通过这种方式,您可以在多个操作/响应中重用相同的模式。

      responses:
        200:
          description: OK.
          schema:
            $ref: "#/definitions/ResponseModel"

definitions:
  ResponseModel:
    title: response
    type: object
    properties:
      user:
        $ref: "#/definitions/User"
      status:
        type: integer
    required:
      - user
      - status

  User:
    type: object
    properties:
      id:
        type: string
      name:
        type: string
    required:
      - id
      - name
 类似资料:
  • 问题内容: 我有一个“ Example” Pojo类,如下所述。可以使用杰克逊的任何电话来将Example类的实例保存到YAML文件中。 } 问题答案: Jackson具有支持YAML的模块。确保将必需的依赖项添加到项目中,然后可以按以下方式使用它: 或者,您可以将对象写为字符串:

  • 问题内容: 我有一系列数据要输入数据库。输入数据的用户界面不适用于批量输入,因此我尝试制定等效的命令行。当我检查Chrome中UI的网络请求时,看到了json对象的PUT请求。当我尝试复制请求时 我得到一个错误 curl:(3)位置X不支持[globbing]嵌套括号 其中X是第一个“ [”的字符位置。 如何放置包含数组的json对象? 问题答案: 您的命令行应该在要发送到PUT中的字符串之前插入

  • 我不认为这叫做“分组”,但我需要做到以下几点:我有课 我有一些人: 父亲= 所以,每个人都可以是多个类别的一部分。我想得到以下映射: 现在,我可以手动迭代每个人,并将他们放到

  • 我正在尝试将文件的内容放入数组中。文件内容是正整数和负整数。 这就是我所做的,以确定我应该使数组多大。inFile是我的扫描仪。我能够打印inFile的内容,但它们不会进入数组。我只得到空值。 这就是我试图将文件内容放入数组所做的。 谢谢你的帮助。

  • 问题内容: 我正在尝试使用角度推功能,但是它不起作用。 我想将字符串(或对象)添加到数组中。 我在此处的Stack Overflow中搜索了基本示例,但找不到。 谁能纠正我的代码或写一个非常基本的示例? 这是我的例子。 这是HTML代码: 这是Java脚本代码: 问题答案: 推送仅对array有效。 使您的对象成为数组对象。 像这样尝试 JS HTML

  • 我正在使用mongoose将一个玩家推入mongoose中的玩家数组,当一个玩家加入游戏时。我收到以下错误: