2013-03-19 74 views
0

在我的ASP.NET Web API项目,我有一些标准的编辑API调用其中XML或JSON输出或任何呼叫者想要的是OK的我。但有些调用应该返回ATOM提要。输出Atom提要用的ASP.NET Web API

现在我发现我可以实现通过定制MediaTypeFormatter的ATOM或RSS输出在这个帖子:How to generate ATOM and RSS2 feeds with ASP.NET Web API?

但它实际上不是我想要的东西,因为它仍然是由调用者的请求这样的输出一个HTTP Accept-header。我想以独占回到这里ATOM,JSON没有,没有(序列化对象)XML。

是否可以使用Web API来做到这一点?或者会是最好使用一个标准的网络控制器,用于这些电话,并只实现所有其他API调用ApiControllers?

感谢您的帮助!

回答

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"); 
} 

您可以使用其中任何一种。

+0

谢谢!会给予好评您的文章,但我还没有允许这样做:) – 2013-03-20 20:31:37

0

如果要强制这种形式的API输出的一般应该什么回报用户请求我想补充一个单独的ASP页面处理程序(ashx的)用于这一目的。

+0

感谢@aaroncatlin ......在这种情况下,作为API应返回饲料,也不过是ATOM(或RSS)XML响应将使意义,所以我想限制。这些电话可以看作是API调用,也为内容的请求,那种灰色地带......所以虽然他们符合API里面,这将是确定让他们外面它在常规的网络控制器。 由ASHX处理程序将这种抽象的通话将肯定工作,但我认为这不是为具有一个网络控制器干净。 所以,我会走这条路......如果它不能够简单地直接的WebAPI限制输出。 – 2013-03-19 15:55:17