如何在 ASP.NET Core 3.1 中指定 Swagger 的默认媒体类型?
例如我有三种媒体类型选择。我希望默认值为
application/json
,而不是 text/plain
。我怎样才能做到这一点?
您可以在应用程序的ConfigureServices 中进行全局配置
services.AddControllers(options =>
{
options.Filters.Add(new ProducesAttribute("application/json"));
})
或者对于多种响应类型:
services.AddControllers(options =>
{
options.Filters.Add(new ProducesAttribute("application/json", "text/plain", "text/json"));
})
将属性添加到您的 api 控制器:
[Produces("application/json")]
扩展@feihoa的答案以获得完整的解决方案:
[Produces]
属性添加到您的 API 控制器:
application/json
)plain/text
和/或 plain/json
和/或 application/xml
)[Produces("application/json", new string[] { "text/plain", "text/json" })]
用 [Consumes("application/json")] 装饰 API 控制器解决了这个问题。 microsoft asp.net core 文档指出 [Produces] 过滤器:
强制控制器内的所有操作返回 POCO(普通旧 CLR 对象)或 ObjectResult 及其派生类型的 JSON 格式响应。
[Consumes] 允许 API 接受 json。 另请参阅 https://www.c-sharpcorner.com/article/understanding- Produces-and-consumes-attribute-in-mvc-6/