OpenAPI3-如何使用相同的方法名称处理多个类?

时间:2019-11-09 03:49:41

标签: swagger openapi swagger-codegen swagger-editor openapi-generator

我想让OpenAPI(3)为API建模,例如:

class Class1{
   Class1 get() {...}
}

class Class2{
   Class2 get() {...}
}

相信方法名称已映射到operationId,而类名称已映射到tags。至少对于摇摇欲坠的代码来说,这是事实。 (https://github.com/swagger-api/swagger-codegen)。

但是,当我有规格时:

paths:
  /class1/get:
    get:
      operationId: get    <<<<<
      tags: Class1 
      responses:
         ...
  /class2/get:
    get:
      operationId: get    <<<<<
      tags: Class2 
      responses:
          ...

... https://editor.swagger.io/和swagger-codegen都抱怨operationId不是唯一的(不是)。

看起来推荐的方法是:

class Class1{
   Class1 getClass1() {...}
}

class Class2{
   Class2 getClass2() {...}
}

...以便统一方法名称。

但是,要明确地说,我不希望我的方法名称在所有类中都唯一。 通常,这对于API的发展来说似乎非常糟糕,因为每次我们添加一个方法时,都有可能在将来的某个时候我们想要在另一个类中添加一个类似名称的方法。除非我们有先见之明,在每个方法名称中都包含类名 ,否则,为了保证命名方案而打破向后兼容性似乎是不可避免的。

此外,它还会导致非常冗长而丑陋的API。

那么,这是最好的也是唯一的方法吗?

0 个答案:

没有答案