【问题标题】:Modelling GeoJSON in Swagger在 Swagger 中建模 GeoJSON
【发布时间】:2015-11-21 19:38:31
【问题描述】:

我正在尝试在提供 JSON 的 Swagger API 中添加 GeoJSON 的定义。我在定义 GeoJSON 的功能选项时遇到了一些问题。

单个功能可以选择 "Point""MultiPoint""LineString""MultiLineString""Polygon""MultiPolygon"。但是,它们中的每一个都对其coordinates 字段施加了不同的约束。例如,一个点可能有一个由经度纬度 pai 组成的坐标,而多边形可能有一个如下所示的字段: [ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ] ].

我环顾四周,但除了将几何定义为 string 而不是像这样的复杂对象外,似乎没有优雅的解决方案来解决这个问题。这意味着信息的丢失,并且基于 Swagger 规范移植 API 是不可取的,因为必须首先将输入字符串解析为对象。

GeoJSON 对象看起来像 this

到目前为止,我得到的是这样的:

  "Feature": {
      "type": "object",
      "properties": {
        "id": {
        },
        "geometry": {
          "$ref": "#/definitions/Geometry"
        },
        "type" : {
          "type" : "string"
        },
        "properties": {
            "type": "object"
        }
    }
}

几何定义如下所示:

"Geometry": {
  "type": "object",
  "properties": {
    "type":{
      "type": "string",
      "enum": ["Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"]
    },
    "coordinates": {
      "type": "array",
      "items": {
        "type": "number",
        "example": [4.49965, 52.06891]
      }
    }
  }
}

【问题讨论】:

    标签: json geojson swagger


    【解决方案1】:

    恐怕没有办法用 Swagger 来描述它。您可以描述一种类型,但不能描述可以接受/产生所有类型的东西。

    【讨论】:

      【解决方案2】:

      您是否检查过这个 gist 文件:geometry_geojson-yaml

      【讨论】:

      • 这是一个三年前的问题,我的朋友,当时规范根本不支持这个!
      猜你喜欢
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2014-01-02
      • 1970-01-01
      相关资源
      最近更新 更多