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

Swagger-如何为自由形式对象编写示例?

曾宏毅
2023-03-14

我们有一个可能包含字段“extraInfo”的响应类型“Error”。

Error:
  type: object
  properties:
    code:
      type: string
    message:
      type: string
    extraInfo:
      description: any complementary information
      type: object
      // how to provide examples here?

一个例子是:

 "extraInfo": {
    "doors": {
      "frontLeftClosed": false,
      "frontRightClosed": true,
      "rearLeftClosed": true,
      "rearRightClosed": true,
      "trunkClosed": true
    },
    "windows": {
      "frontLeftClosed": false,
      "rearLeftClosed": true,
      "trunkClosed": false
    }
  }

另一个可能是:

"extraInfo": {
   "transactionId": "77812783001"
}

由于它是一个自由形式的对象,有没有办法在Swagger中为它提供示例?

在规范中找不到它:https://swagger.io/docs/specification/data-models/data-types/

共有1个答案

柯凯旋
2023-03-14

使用example关键字并使用YAML或JSON对象语法指定示例值:

    extraInfo:
      description: any complementary information
      type: object
      example:   # <-------
        doors:
          frontLeftClosed: false
          frontRightClosed: true
          rearLeftClosed: true
          rearRightClosed: true
          trunkClosed: true
        windows:
          frontLeftClosed: false
          rearLeftClosed: true
          trunkClosed: false

OpenAPI 3.1(与JSON Schema 2020-12兼容)也支持模式和属性的多个< code >示例。

# openapi: 3.1.0

    extraInfo:
      description: any complementary information
      type: object
      # A list of examples
      examples:
        # Example 1
        - transactionId: '77812783001'
        # Example 2
        - doors:
            frontLeftClosed: false
            frontRightClosed: true
            rearLeftClosed: true
            rearRightClosed: true
            trunkClosed: true
          windows:
            frontLeftClosed: false
            rearLeftClosed: true
            trunkClosed: false
 类似资料:
  • 问题内容: 考虑此类: 默认的字符串表示形式如下所示: 如何使它显示自定义字符串? 问题答案: 在类的元类中实现或。 使用,如果你说的是可读的字串,使用了明确的表示。

  • 我试图描述的API有一个结构,其中根对象可以包含任意数量的子对象(属性本身就是对象)。根对象中的“键”或属性是子对象的唯一标识符,值是子对象的其余数据。 可以类似地将其建模为数组,例如: 但这既使得识别属性在结构上不那么清楚,又使得子ID之间的唯一性是隐式的,而不是显式的,所以我们想使用一个对象或一个映射。

  • 例如,调用应返回。员工在超过的任何时间内,应获得正常时薪的1.5倍

  • 我正在用swagger.io起草一个API文档,并试图使其适合我们的用例。系统将接收和处理来自所有来源的数据,每个来源都有不同的字段集。 虽然处理的产品共享相同的模式,但我们也希望在模式中包含输入以供参考。例如,给定 假设对于来自不同来源的每个输入,我们最终都有和。所以我们的响应模式对象 既然我们已经定义了子对象,那么我们是否可以为原始输入定义一个自由格式的对象,以便来自另一个源的对象是有效的 如

  • 我正在尝试学习如何在片段中显示具有3列的网格视图。值来自strings.xml文件作为数组列表。当我运行应用程序时,它会崩溃。有人能帮助我在3列中显示值,即位置、描述和时间。我无法继续在gridview中显示读取值。 错误 致命异常:主java。com上的lang.NullPointerException。ts.FlightFragment$MyAdapter。(FlightFragment.ja

  • 问题内容: 我需要为AngularJS编写一个自定义模块,但是我找不到关于该主题的任何好的文档。如何为AngularJS编写一个可以与他人共享的自定义模块? 问题答案: 在这种情况下,您认为文档无法再为您提供帮助,一个很好的学习方法是查看其他已经构建的模块,看看其他人是如何做到的,他们如何设计架构以及如何将它们集成到其中。他们的应用。 在查看其他人的工作之后,您至少应该有一个起点。 例如,看看任何