【问题标题】:How to define swagger property that is an unknown name?如何定义未知名称的 swagger 属性?
【发布时间】:2016-06-22 18:08:38
【问题描述】:

我需要定义一个没有已知名称的 swagger 属性。

{
  "type": "object",
  "properties": {
      "?????": {
          "type": "array",
          "items": { "$ref": "#/definitions/ModelRelease" }
      }
}

那个??????我的定义的一部分是一个未知值的整数。有什么想法吗?

【问题讨论】:

  • 如果您不知道整数,以后将如何引用该属性?
  • 这只是一个对象......我想翻阅它们
  • 那么,只要将属性名称存储在一个变量中以供以后参考(如果您需要知道您已经达到了这个特定的属性名称),您称之为什么有关系吗?跨度>
  • 你可以使用additionalProperties来定义一个hashmap(“?????”是这个hashmap中的一个键,不需要定义它):{“type”:“object”,“ additionalProperties": { "type": "array", "items": { "$ref": "#/definitions/ModelRelease" } } 缺点是这个 hashmap 可以有多个项目。您能否详细介绍一下您的用例? (看起来很奇怪)
  • @Nicholas OpenAPI (Swagger) 使用 JSON Schema 的子集来描述对象。 JSON Schema 建议patternProperties(允许定义名称基于正则表达式的属性)但 OpenAPI 当前版本不支持它们。有一个问题可以在下一个版本中包含:github.com/OAI/OpenAPI-Specification/issues/687

标签: swagger


【解决方案1】:

你可以使用additionalProperties来定义一个hashmap(“?????”是这个hashmap中的一个键,不需要定义它):

{ 
  "type": "object", 
  "additionalProperties": { 
    "type": "array", 
    "items": { 
      "$ref": "#/definitions/ModelRelease" 
    }
  }
} 

在一般情况下,hashmap 可以有任意数量的项目,但您可以使用 minPropertiesmaxProperties 来限制项目数。例如,如果您的对象必须只有一个属性:

{ 
  "type": "object",
  "additionalProperties": {
    "type": "array",
    "items": {
      "$ref": "#/definitions/ModelRelease" 
    }
  },
  "minProperties": 1,
  "maxProperties": 1
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-05-18
  • 2012-09-16
  • 2023-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
相关资源
最近更新 更多