使用ASP.NET Web API输出Atom提要

时间:2013-03-19 14:30:01

标签: asp.net-web-api

在我的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会更好吗?

感谢您的帮助!

2 个答案:

答案 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通常会返回用户请求的内容。