Swagger 招摇过市定义中的互斥属性

Swagger 招摇过市定义中的互斥属性,swagger,Swagger,API设计中的一种常见模式是有时预取相关实体,而有时仅提供相关实体的id 例如,获取用户时,可以获取相关组织: { "id": "user-id", "organisation": { "id": "org-id" } } 在其他时候(如在用户列表中),您只能在同一字段中获得组织id { "id": "user-id", "organisation": "org-id" } 或者,您将仅获得组织id,但位于不同名称的字段中: { "id"

API设计中的一种常见模式是有时预取相关实体,而有时仅提供相关实体的id

例如,获取用户时,可以获取相关组织:

{ 
   "id": "user-id",
   "organisation": {
      "id": "org-id"
   }
}
在其他时候(如在用户列表中),您只能在同一字段中获得组织id

{ 
   "id": "user-id",
   "organisation": "org-id"
}
或者,您将仅获得组织id,但位于不同名称的字段中:

{ 
   "id": "user-id",
   "organisationId": "org-id"
}
我的问题是,我们可以在Swagger中定义这样一个变量模式吗?当然,我们可以定义一个有组织的
用户和一个没有组织的
用户,但是如果我们有几个关系,问题很快就会失控

在第一种情况下,字段的类型需要是基元或对象


在第二种情况下,
organization
属性或
organizationId
属性存在,但两者都不存在,且始终存在。

解决方法是将
organization
organizationId
属性定义为可选属性,但不能强制执行互斥约束