3

我一直在研究一个我希望是 RESTful 的 Web API。举个例子:

http://product.domain.local/person

将提供一个带有 ASP.NET MVC 提供的漂亮 UI 的网页(用于人类)。

但是,如果我在 HTTP 标头中要求 Accept json/xml,我想将请求重定向到我的 Web API 控制器。IE。以及 MapHttpRoute,我想根据请求的 contentType 进行映射。

因此,当我的 API 返回一个 ID 时:

http://product.domain.local/person/1

如果一个人使用它,他们会得到一个网页,如果客户端应用程序使用它,他们会得到 JSON/XML(因为他们会修改 Accept 标头),这允许我使用 HTTP 重定向等来实现 REST。

但我找不到办法做到这一点。甚至可能吗?

4

1 回答 1

1

我发现这非常困难。Webapi 非常擅长基于接受类型标头的路由,但不擅长处理视图。MVC 擅长视图,但不擅长处理各种响应。

如果有的话,我认为最容易使 MVC 最简单。根据您对接受类型处理所需的灵活性,您可能只需实现一个通用函数(返回一个ActionResult)并在其中根据您的头脑(或您想要的任何其他内容)返回正确的类型。

于 2012-09-21T22:24:33.183 回答