Изменить имена определений Swagger для MVC API

Я хотел бы изменить имена объектов схемы Swagger, которые автоматически генерируются для моего приложения MVC.

Например, у меня есть несколько объектов, таких как объекты EmployeeModel или CompanyModel, которые доступны через наши конечные точки REST.

Однако не обязательно и не желательно, чтобы определение Swagger содержало слово «Модель» после каждого имени сущности. Они должны быть известны только как Сотрудник или Компания — см. пример на снимке экрана.

введите здесь описание изображения


person Mike    schedule 15.09.2016    source источник


Ответы (2)


Вы должны использовать функцию SchemaId, доступную в вашем файле SwaggerConfig.cs, в методе EnableSwagger следующим образом:

c.SchemaId(t =>
{
    c.SchemaId(t => t.FullName.EndsWith("Model") ? t.FullName.Replace("Model", String.Empty) : t.FullName);
});

Эти методы позволяют переопределить поведение Swashbuckle по умолчанию и правильно задать сложные имена типов.

Мой пример адресован непосредственно удалению части "Модель" ваших имен объектов, но может использовать более сложную настройку.

person Benjamin Soulier    schedule 15.09.2016

Какую библиотеку вы используете для создания схемы чванства? Взгляните на Swashbuckle . Это позволяет автоматически создавать схему swagger для вашего приложения (с помощью XML-документации) и обеспечивает гибкость настройки. См. раздел "Изменение сгенерированных схем" в документации.

person n.prokhorov    schedule 15.09.2016