【问题标题】:How do I set "Parameter content type" using Swashbuckle?如何使用 Swashbuckle 设置“参数内容类型”?
【发布时间】:2019-09-22 11:42:35
【问题描述】:

我的 swagger ui 显示带有各种条目的“参数内容类型”:"application/json-patch+json""text/json""application/json""application/*+json"

我只想要"application/json"

repo 上有一个 similar 未解决的问题,它使用了这个视觉效果(旧的 ui,但同样的想法):

有什么方法可以设置吗?

Swashbuckle.AspNetCore 版本4.0.1
Swashbuckle.AspNetCore.Filters 版本4.5.5

【问题讨论】:

    标签: swagger swagger-ui swashbuckle asp.net-core-2.2


    【解决方案1】:

    使用[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( MediaTypeNames.Application.Json )] // "application/json"
        [Produces( typeof(MyResponseDto) ) ]
        public async Task<IActionResult> Post( [FromBody] MyRequestDto dto )
        {
            // 
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-01
      • 2016-09-28
      • 2010-11-22
      • 1970-01-01
      • 2018-11-29
      • 2020-06-29
      • 1970-01-01
      相关资源
      最近更新 更多