ASP.NET Core Web API - 如何对单个端点使用 XML 格式化程序,同时为其他端点保留 JSON?

问题描述 投票:0回答:1

我有一个 ASP.NET Core Web API,主要使用 JSON 进行通信。但是,我需要一个特定的端点来处理 XML 请求和响应。

我已将自定义 XmlSerializerOutputFormatter 添加到我的 program.cs 中:

services.AddMvc(options =>
            {
                options.OutputFormatters.Clear(); 
                
                options.OutputFormatters.Add(new CustomXmlSerializerOutputFormatter()); 
            });

问题是,现在我的所有端点都被视为接受并生成 XML,如果没有它,我的 xml 端点将无法工作。

我尝试添加

[Consumes("application/json")]
[Produces("application/json")]

我的 json 控制器,但它没有帮助。

我该如何修复它,以便我的应用程序将使用/生成除此一个端点之外的 json。

c# json .net xml asp.net-core-webapi
1个回答
0
投票

原来我需要添加

[HttpPost("itn.{format}"), FormatFilter]

对于我的端点,有了这个我不需要OutputFormatters。

您还需要在请求 URL 中包含 .xml 扩展名,例如 /api/shop/itn.xml

© www.soinside.com 2019 - 2024. All rights reserved.