首页 > 解决方案 > Swagger 2.0 中的抽象父类

问题描述

我在这里找到了这个很好的问题/答案,但没有提到如何使“宠物”类抽象。

这里的家伙表示,这只有在 3.0 规范中才有可能。虽然这里的这个似乎已经在 Swagger 2.0 中实现了抽象类,并且只是在注释方面遇到了问题。

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

标签: inheritancepolymorphismswagger-2.0

解决方案


OpenAPI 规范(fka Swagger 规范)与语言无关,没有抽象类的概念。将模式定义翻译成最合适的语言结构取决于工具实现。

例如,工具可以选择将所有“基本”模式作为抽象类来处理(如此处所讨论的)。

或者工具可以使用x- 扩展名,例如x-abstract,来表示抽象类:

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

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


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


推荐阅读