在我的ASP.NET Web API项目中,我有一些标准的Edit API调用,其中XML或JSON输出或者调用者想要的任何内容对我来说都没问题。但是有些调用应该返回ATOM提要。
现在我发现在这篇文章中我可以通过自定义MediaTypeFormatter实现ATOM或RSS输出:How to generate ATOM and RSS2 feeds with ASP.NET Web API?
但它实际上并不是我想要的,因为它仍然由调用者通过HTTP Accept-header请求这样的输出。我想在这里专门返回ATOM,没有JSON,没有(序列化对象)XML。
是否可以使用Web API执行此操作?或者为这些调用使用标准Web控制器并仅将所有其他API调用实现为ApiControllers会更好吗?
感谢您的帮助!
答案 0 :(得分:7)
您也可以使用Web API。示例操作如下。
public HttpResponseMessage GetFeed()
{
return Request.CreateResponse(HttpStatusCode.OK, feedInstance, "application/atom+xml");
}
public HttpResponseMessage GetFeed()
{
return Request.CreateResponse(HttpStatusCode.OK, feedInstance, feedFormatter, "application/atom+xml");
}
您可以使用其中任何一种。
答案 1 :(得分:0)
如果你想强制使用这种形式的输出,我会为此添加一个单独的ASP处理程序页面(.ashx),因为API通常会返回用户请求的内容。