Как установить «Тип содержимого параметра» с помощью Swashbuckle? - PullRequest
1 голос
/ 04 мая 2019

Мой пользовательский интерфейс отображает «Тип содержимого параметра» с различными записями: "application/json-patch+json", "text/json", "application/json" и "application/*+json".

Я хочу только "application/json".

Существует похожая нерешенная проблема в репо, которая использует этот визуал (более старый интерфейс, но та же идея):

enter image description here

Есть ли способ установить это?

Swashbuckle.AspNetCore версия 4.0.1
Swashbuckle.AspNetCore.Filters версия 4.5.5

1 Ответ

3 голосов
/ 04 мая 2019

Используйте атрибуты [Produces] и [Consumes].Swashbuckle (и другие, например NSwag) преобразуют их в соответствующую документацию Swagger.

Первый параметр конструктора атрибута [Consumes] - String contentType:

public ConsumesAttribute ( string contentType, params string[] otherContentTypes );

https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.consumesattribute.-ctor?view=aspnetcore-2.2#Microsoft_AspNetCore_Mvc_ConsumesAttribute__ctor_System_String_System_String___

Вот так:

[ApiController]
public class MyController : ControllBase
{
    [HttpPost( "/foo/bar" )]
    [Consumes( "application/json" )]
    [Produces( typeof(MyResponseDto) )
    public async Task<IActionResult> Post( [FromBody] MyRequestDto dto )
    {
        // 
    }
}
...