我有Asp.net Core Swagger框架,我们都在工作中使用它。它只是用Swagger包装所有PITA的东西。它被设计成json in / json out。现在,一个组只想在/ XML中使用XML。
这是我到目前为止所做的:
1)将startup.cs更改为:
services.AddMvc().AddXmlSerializerFormatters();
2)在控制器方法上,更改为:
[Consumes("application/xml")]
[Produces("application/xml")]
3)在操作过滤器中,添加:
operation.Produces.Add("application/xml");
现在,在测试UI中,我只得到输入和输出下拉列表的application / xml。当我点击测试按钮时,我的请求正在反序列化,但测试页面会产生406错误。
我还需要改变什么?
客户端需要发送包含Accepts
的application/xml
标头。您已将application/xml
设置为唯一可能的响应类型,如果客户端请求application/json
之类的内容,则服务器将无法再满足该请求。