如何记下OAS3中计算出的默认值

时间:2019-01-09 20:50:49

标签: openapi

我正在更新我的API规范(OAS 3.0.0),但在理解如何正确建模“复杂”默认值时遇到了麻烦。

通常,参数的默认值为标量值(即字段offset的默认值为0)。但是在我指定的API中,默认值实际上是根据其他提供的参数计算得出的。

例如,如果我们从示例文档中提取Pet model,并决定需要标记所有动物,该怎么办?如果API的用户想要提供标签,那就太好了。如果没有,它将等于名称。

一种可能性:

Pet:
  required:
    - id
    - name
  properties:
    id:
      type: integer
      format: int64
    name:
      type: string
    tag:
      type: string
      default: '#/components/schemas/Pet/name'

这会将路径值存储为默认值,但是我想让它解释将计算默认值。

如果我可以编码来自父模式的信息,则奖励点。

是否可以只在描述字段中描述行为?

1 个答案:

答案 0 :(得分:0)

OpenAPI规范does not support动态/条件默认值。您只能在description中以口头形式记录行为。

也就是说,您可以使用规范扩展名(x-...)将自定义信息添加到定义中,如下所示:

tag:
  type: string
  x-default: name

tag:
  type: string
  x-default:
    propertyName: name

# or similar

并扩展工具以支持您的自定义扩展。