我一直在开发一个 Web API,我希望它是 RESTful 的。举个例子:
http://product.domain.local/person
将提供一个带有漂亮 UI 的网页,由 ASP.NET MVC(针对人类)提供服务。
但是,如果我在 HTTP header 中请求接受 json/xml,我想将请求重定向到我的 Web API Controller 。 IE。以及 MapHttpRoute,我想根据请求的 contentType 进行映射。
因此,当我的 API 返回 ID 时:
http://product.domain.local/person/1
如果人类使用它,他们会得到一个网页,如果客户端应用程序使用它,他们会得到 JSON/XML(因为他们会修改 Accept header ),这允许我使用 HTTP 重定向等来工作走向休息。
但我找不到办法做到这一点。有可能吗?
最佳答案
我发现这相当困难。 Webapi 非常擅长基于接受类型 header 进行路由,但不擅长处理 View 。 MVC 擅长 View ,但不擅长处理各种响应。
如果有什么不同的话,我认为最简单的就是让 MVC 最简单。根据接受类型处理所需的灵 active ,您可能只需实现一个通用函数(返回一个 ActionResult
),并在其中根据您的 head(或您的其他任何内容)返回正确的类型。愿意)。
关于http-headers - 具有 ASP.NET MVC Web API 的 ASP.NET MVC 站点,结果类型/ Controller 由 Accept header 确定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12533785/