Swagger 2.0中的抽象父类

时间:2018-07-14 20:35:28

标签: inheritance polymorphism swagger-2.0

我在这里找到了excellent question/answer,但是没有提及如何使“ Pet”类抽象化。

同行here表示这仅在3.0规范中可行。尽管this one here在Swagger 2.0中似乎已经实现了抽象类,但是在注释方面却遇到了麻烦。

在Swagger 2.0规范中这可能吗?如果是这样,我需要在规范中使用哪些标签来使Swagger 2.0生成抽象的父类?

1 个答案:

答案 0 :(得分:1)

OpenAPI Specification(fka Swagger规范)与语言无关,并且没有抽象类的概念。由工具实现将模式定义转换为最合适的语言结构。

例如,工具可以选择将所有“基本”模式作为抽象类(如discussed here)进行处理。

或者工具可以使用x-之类的x-abstract extension来表示抽象类:

AbstractClass:
  type: object
  x-abstract: true  # <---
  properties:
    ...

x-abstract受(至少)以下两个工具支持:
https://github.com/AphelionApps/SwaggerParser
https://github.com/Automatic/Manual


底线:这取决于特定工具如何处理OpenAPI定义。