使用asp.net mvc进行基于REST的端点
我正在寻找使用ASP.Net MVC作为基于REST的服务的平台.我知道WCF内置了对REST服务的支持;但是,我正在考虑根据请求返回多种类型的数据.
我希望客户端请求内容类型.因此,如果他们发送text / html例如我将我的模型渲染为Html,如果他们请求text / xml,它将返回xml.我们也可以做JSON. 有没有人看到这个问题? 不使用WCF会在调用服务时增加客户端的复杂性,因为它们无法自动生成代理;但是,就我而言,客户端将是浏览器请求html,或者是处理xml的java客户端库. 由于没有使用WCF,我们需要保护服务;但是,我想我们可以使用表单身份验证来完成此操作. 这样做的好处是,无论客户端请求什么类型的数据,它都通过相同的控制器/模型等… 解决方法
哈克的解决方案当然不是最好的解决方案,尽管这是一个很好的起点.
对于初学者,如果您正在使用实体框架(或者决定稍后从Linq切换到SQL),JsonResult将会中断,因为它无法使用循环引用(通常是大多数数据模型)序列化对象图.其次,它为同一资源公开了多个端点. 执行此操作的正确方法是查看X-Requested-With HTTP标头以确定这是否是XHR请求.或Content-Type:XML的text / xml请求标头. 我建议您安装适用于模拟XHR请求的REST testing的Firefox插件. Tamper Data插件和其他一些插件可以更好地控制测试/调试. WFetch是一个直接的原始HTTP请求工具,对于测试和调试也很重要. 我为此做了一个JSON/POX action filter.您只需要使用[JsonPox]属性修饰类或方法,它们将根据客户端自动显示为JSON或XML. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC Scheduler开源?
- asp.net-core – 什么是aspnet50和aspnetcore50?
- ASP.NET MVC – 在何处放置数据库查询
- asp.net – 如何设置IHttpAsyncHandler超时?
- asp.net-mvc – ASP.NET MVC RenderAction重新呈现整个页面
- 在ASP.NET MVC中使用MySQL的AccountController
- 使用Linq表达式在扩展方法中有趣(?)
- asp.net – 如果在Application_Start中抛出未处理的异常会发
- asp.net – 设置Orchard开发工作区
- asp.net – 来自TextBox的ActionLink routeValue