我们有一堆数据,我们希望向asp-net.mvc网站上的世界公开.我想确保我们使用易于最终开发人员实施且不依赖于任何特定平台的技术来提供它,而不是使用不受欢迎/与开发人员不兼容的技术.
我们期望的那种请求主要是检索搜索结果(不是很多参数),但是我们希望能够提供目录查找等,这可能更复杂.
牢记这一点,这样做的首选方法是什么?
Windows Communication Foundation可用于创建SOAP服务(如果您的消费者是企业,使用Visual Studio/.NET或Java)或REST服务(适用于其他平台上的人员).这些是公开API的首选方式.
如果您希望获得最大的曝光率,最好使用REST方法,因为它更容易使用JavaScript等"网络"语言.Microsoft 在使用WCF组建REST API 方面拥有广泛的资源.
老实说,对于你说你需要处理的各种请求,这些请求似乎都在查找数据而不是修改它,差别几乎是微不足道的 - 只需更改一些属性/配置选项就可以从SOAP切换到REST从技术上讲,你甚至可以使用很少的额外代码同时托管两者.只要您坚持使用WCF并且不使用像ASMX/WSE这样的过时技术那么您就可以了.
使用REST的原因:
几乎可以在任何地方消费(包括JavaScript,RSS阅读器等);
它很受欢迎(谷歌,Twitter等使用)
支持许多不同的数据格式(JSON,Atom等)
使用SOAP的原因:
标准化安全协议(加密,不可否认等)
分布式事务
消息队列
这不是一个详尽的清单,但它应该让你知道每个目标市场是谁.如果您正在托管一个非常开放,非常公开的网站,旨在供任何人和每个人使用,请使用REST.如果服务是业务系统的一部分,并且您需要保证数据的可靠性,安全性和一致性,那么您将需要使用SOAP.根据您的目标市场选择合适的技术.
创建RESTful API.作为经常使用Web服务的开发人员,这是我期望和喜欢的.
许多受欢迎的服务(digg/twitter/netflix/google)正在REST
结束SOAP
,所以你明智地跟风.