Swagger для Asp.Net. Api возвращает анонимный тип. Можно ли в swaggerUi показывать пример ответа?
Методы моих Api контроллеров принимают тип object в качестве параметра (json) и возвращают object (json) в ответ, который формируется в хранимых процедурах.
public Object TestSwagger(Object requestParams)
{
return myService.CallStoredProcedure(requestParams);
}
На фронте хотят чтобы через Swagger было видно пример входящих параметров и возвращаемого объекта, то есть пример джейсона. На официальном сайте Сваггера есть пример как это сделать через Swagger Editor, однако я использую для сваггера Swashbuckle и не совсем понимаю как это сделать в моём случае. Был бы благодарен за любые советы.
Ответы (1 шт):
Во первых не использовать object. А использовать свои "нормальные" типы объектов.
Если Вы все таки потом приводите object к какому то типу и никак не хотите менять тип возвращаемого значения и тип аргумента то используйте атрибуты :
[Produces("application/json")]
[ProducesErrorResponseType(typeof(void))]
[ProducesResponseType(typeof(BankDto), StatusCodes.Status200OK)]
Для аргументов нет никаких атрибутов, то есть Вы никаким образом не сможете сказать о своих соглашениях - так как огромная вариативного того какой у Вас аргумент и какой способ его предоставления [FromBody] или [FromQuery]. Так что лучше переписать контроллер так :
public ResponseObject TestSwagger(RequestObject requestParams)
{
return myService.CallStoredProcedure(requestParams);
}
И Swagger сможет сгенерировать для Вас нормальные соглашения!