如何使用 SwashBuckle 设置或删除默认响应内容类型

How do I set or remove the Default Response Content Type Using SwashBuckle

使用 SwashBuckle 时的默认响应内容类型是 text/plain。如何将默认值更改为 application/json 甚至删除 text/plain

端点的响应内容不是由 Swashbuckle 决定的,而是由 ASP.NET Web API 项目配置中设置的格式化程序决定的。

要删除 text/plain 内容类型并仅支持 application/json,您可以将其添加到 WebApiConfigRegister 方法中:

GlobalConfiguration.Configuration.Formatters.Clear();

var jsonFormatter = new JsonMediaTypeFormatter();
jsonFormatter.SupportedMediaTypes.Clear();
jsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));

GlobalConfiguration.Configuration.Formatters.Add(jsonFormatter);

对于 ASP.NET Core 3 Web API,我必须在 Startup.ConfigureServices() 方法中执行以下操作:

services.AddControllers(options => options.OutputFormatters.RemoveType<StringOutputFormatter>());

here你可以找到相应的文档。