Соглашения ASP.NET Core Web API не наследуются, если в действии присутствует дополнительный атрибут ProducesResponseTypeC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Соглашения ASP.NET Core Web API не наследуются, если в действии присутствует дополнительный атрибут ProducesResponseType

Сообщение Anonymous »

Ознакомьтесь со следующими соглашениями веб-API и соответствующим контроллером:

Код: Выделить всё

public static class MyAppConventions
{
[ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound,
MediaTypeNames.Application.ProblemJson)]
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
public static void Get()
{ }
}

Код: Выделить всё

[ApiConventionType(typeof(MyAppConvention))]
[Route("test")]
public class TestController : ControllerBase
{
[HttpGet]
public IActionResult GetData()
{
if (condition)
return NotFound();
else
return Ok(new TestDto());
}
}
Проблема
Если я добавлю дополнительный ProducesResponseType, чтобы отметить пользовательский код ответа, отсутствующий в соответствующее соглашение, то атрибуты соглашения игнорируются.

Код: Выделить всё

[ApiConventionType(typeof(MyAppConvention))]
[Route("test")]
public class TestController : ControllerBase
{
[ProducesResponseType(typeof(TestDto), StatusCodes.Status200Ok, MediaTypeNames.Application.Json)]
[HttpGet]
public IActionResult GetData()
{
if (condition)
return NotFound();
else
return Ok(new TestDto());
}
}
Есть ли обходные пути для этой проблемы? Это мешает анализаторам OpenAPI, добавленным в проект.
Ссылки

[*]https: //learn.microsoft.com/en-us/aspnet/core/web-api/advanced/conventions?view=aspnetcore-8.0
Пользовательские соглашения веб-API не работают с ODataController< /li>


Подробнее здесь: https://stackoverflow.com/questions/790 ... onsetype-a
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»