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

OpenAPI3.0中属性的交叉依赖

柯振濂
2023-03-14

我需要为搜索API定义Swagger/OpenAPI V3.0文件。我的请求可以指定地理空间坐标(经度和纬度)或(邮政编码和国家代码)或(城市和州和国家代码)。除了这些,我还有几个更强制的属性,比如距离和距离单位。

我知道如何在JSON模式中做到这一点

            "dependencies": {
                "postalCode": ["countryCode"],
                "city": ["state", "countryCode"],
                "longitude": ["latitude"],
                "latitude": ["longitude"]
            },
            "anyOf": [
                {
                    "required": ["longitude", "latitude"]
                },
                {
                    "required": ["postalCode", "countryCode"]
                },
                {
                    "required": ["city", "state", "countryCode"]
                }
            ]
        }

但我很难用大摇大摆的方式来定义它。OpenAPI3.0允许One of和anyOf构造,但如果我试图在required部分使用它,swagger editor会给我一个错误。

任何帮助都将不胜感激。

共有1个答案

曹光霁
2023-03-14

要为请求参数定义之一/任意逻辑,必须将所有参数定义为单个对象类型参数,如本文所述。

parameters:
  - in: query
    name: params  # This name will NOT appear in the request URL
                  # but will be used in generated client SDKs / server stubs
    required: true

    # serialize this object as ?key1=value1&key2=value2
    style: form
    explode: true

    schema:
      type: object
      properties:
        longitude: { ... }
        latitude:  { ... }
        postalCode:  { ... }
        countryCode: { ... }
        city:  { ... }
        state: { ... }
      anyOf:
        - required: [longitude, latitude]
        - required: [postalCode, countryCode]
        - required: [city, state, countryCode]

请注意,OpenAPI3.0不支持JSON模式的dependencies关键字,但OpenAPI3.1(最新版本)支持该关键字。

OpenAPI规范存储库中还有一个现有的特性请求,以支持各个参数定义之间的依赖关系。

 类似资料:
  • 问题内容: 以我有一个表的示例为例,该表包含大学课程,一个表包含学生。一堂课有很多学生,一个学生只能上一堂课。(一对多关系)。如果我在其中有一列存储了一个班级的学生总数,那感觉它应该违反了3NF。但是依赖关系在单独的表中。这种依赖关系叫做什么?我们可以说这违反了3NF吗?因为从某种意义上说,它具有违反3NF的所有问题。我想知道这是否是一个相关案例。 问题答案: TL; DR 但是依赖关系在单独的表

  • 问题内容: 使用Chrome的devtools检查元素时,在“元素”标签中,右侧的“样式”栏显示了相应的CSS属性。有时,其中某些属性会被删除。这些属性是什么意思? 问题答案: 当CSS属性显示为删除线时,表示应用了划线样式,但随后被更特定的选择器,更本地的规则或同一规则中的更高属性覆盖。 (特殊情况:如果某个样式存在于匹配规则中但已被注释掉,或者您通过在Chrome开发者工具中取消选中该样式来手

  • 我很难理解WPF中的依赖属性,可能是因为我要找的用例非常具体,没有很好的文档化。 我有一个自定义控件,看起来像这样(请忽略所有可怕的代码,这是暂时的!): 我这样称呼它在我的主窗口内: 我只想在主窗口中的自定义控件调用中说: (其中fillPercent是另一个脚本中不需要担心的内容)。该控件将被展开,因此需要保持为自定义控件。我明白我可能需要依赖属性,但在尝试了许多不同的方法后,我无法弄清楚如何

  • 所以我做了两组物体,就像这样。 这些都是4位数的对象,所以它就像。。。 如果我有2个集合,set1和set2,我想更新set1和set2,只包含set1具有与set2的第一个属性匹配的最后一个属性的对象。 例如第1组中的1234将与第2组中的3456匹配。 我可以很容易地将其作为列表而不是集合来完成,但如果我能够理解过程,集合会感觉效率更高,但不确定如何返回对象属性的交集。任何帮助。 编辑:因为我

  • 我试图理解二叉树的属性。但有一件事我不确定: 二叉树的dev.表示: > 如果任意两片树叶的深度差最大为1,则二叉树是平衡的。 我问我这两个定义是否相等,我的意思是定义。1统计Def。2和viceversa?...对我来说似乎是的...但是谁能用例子准确地解释我这个属性的(非)等价? 谢谢,帕特里克

  • 本文向大家介绍wpf 附加的依赖项属性,包括了wpf 附加的依赖项属性的使用技巧和注意事项,需要的朋友参考一下 示例 何时使用 附加属性是一种依赖项属性,可以将其应用于任何属性,DependencyObject以增强了解该属性存在的各种控件或服务的行为。 附加属性的一些用例包括: 有一个父元素遍历其子元素并以某种方式作用于子元素。例如,Grid控制使用Grid.Row,Grid.Column,Gr