0

在我的 ASP.NET Web API 项目中,我有一些标准的 Edit API 调用,其中 XML 或 JSON 输出或调用者想要的任何东西对我来说都可以。但有些调用应该返回 ATOM 提要。

现在我发现我可以在这篇文章中通过自定义 MediaTypeFormatter 实现 ATOM 或 RSS 输出:如何使用 ASP.NET Web API 生成 ATOM 和 RSS2 提要?

但这实际上并不是我想要的,因为它仍然取决于调用者通过 HTTP Accept-header 请求这样的输出。我想在这里专门返回 ATOM,没有 JSON,没有(序列化对象为)XML。

是否可以使用 Web API 做到这一点?还是为这些调用使用标准的 Web 控制器并仅将所有其他 API 调用实现为 ApiController 会更好吗?

谢谢你的帮助!

4

2 回答 2

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

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

于 2013-03-19T17:52:31.600 回答
0

如果您想强制这种形式的输出,我会为此添加一个单独的 ASP 处理程序页面 (.ashx),因为 API 通常应该返回用户请求的内容。

于 2013-03-19T14:36:09.973 回答