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