2016-09-15 5 views
2

Я создаю Rest API с использованием C# и WebAPI. Я использую Swashbuckle для добавления пользовательского интерфейса Swagger в API и AutoRest для создания клиента. Все это работает отлично, пока я не введу полиморфизм/наследование моей модели. Интерфейс Swagger только создает определения для базовых классов, что приводит к тому, что мой клиент AutoRest имеет только базовые типы в интерфейсе.SwaggerUI и Swashbuckle распознают полиморфные/производные типы

Есть ли атрибуты, необходимые для моей модели, чтобы Swashbuckle/Swagger распознавали производные типы?

+0

http://stackoverflow.com/questions/34397349/how-do-include-subclasses-in-swagger-api-documentation-using-swashbuckle имеет ответ и уточняет ответ @bsoulier – beezler

ответ

4

Swagger/OpenAPI спецификация поддерживает полиморфизм.

SwashBuckle, который генерирует Swagger документ динамически, как указано на Swashbuckle versions feature comparision, не поддерживает полиморфизм с версии 5.0 .

Единственный способ, которым вы могли бы справиться с полиморфизмом, состоял бы в том, чтобы создать собственный код после того, как модель Swagger была полностью сгенерирована, используя интерфейс IDocumentFilter до modify generated definitions.