微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用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.

原文地址:https://www.jb51.cc/aspnet/251937.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐