我们有一堆数据,我们希望向asp-net.mvc网站上的世界公开。我想确保我们使用易于最终开发人员实施且不依赖于任何特定平台的技术来提供它,而不是使用不受欢迎/与开发人员不兼容的技术。
我们期望的请求类型主要是检索搜索结果(参数不多),但我们希望能够提供目录查找等,这可能更复杂。
考虑到这一点,这样做的首选方法是什么?
答案 0 :(得分:9)
Windows Communication Foundation可用于创建SOAP服务(如果您的消费者是企业,使用Visual Studio / .NET或Java)或REST服务(适用于其他平台上的人员)。这些是公开API的首选方式。
如果您希望获得最大的曝光率,最好使用REST方法,因为它更容易使用JavaScript等“网络”语言。 Microsoft已经extensive resources使用WCF整合REST API。
老实说,对于你说你需要处理的那些请求,这些请求似乎都是查找数据而不是修改它,差别几乎是微不足道的 - 只需更改一些属性/配置选项即可从SOAP切换到REST,从技术上讲,甚至可以使用非常少的附加代码同时托管两者。只要您坚持使用WCF并且不使用ASMX / WSE等过时技术,那么您就可以了。
使用REST的原因:
使用SOAP的原因:
这不是一个详尽的清单,但它应该让你知道每个目标市场是谁。如果您正在托管一个非常开放,非常公开的网站,旨在供任何人和每个人使用,请使用REST。如果服务是业务系统的一部分,并且您需要保证数据的可靠性,安全性和一致性,那么您将需要使用SOAP。根据您的目标市场选择合适的技术。
答案 1 :(得分:8)
创建RESTful API。作为经常使用Web服务的开发人员,这是我期望和喜欢的。
许多受欢迎的服务(digg / twitter / netflix / google)都会转移到REST
SOAP
以上,所以你明智地跟进。
答案 2 :(得分:1)
如果您确实创建了REST API,则还应创建WADL文件。这是REST的WISDL。它们还没有得到很好的支持,但它们并不难创建,随着支持的增加它们会变得更有用。
答案 3 :(得分:1)
你会想看看odata。看看odata.org和live.visitmix.com/videos 这将为您提供REST访问,SOAP中的元数据支持,与整个办公室堆栈的互操作性以及如果您使用WCF数据服务,您可以在几小时,几天内实现它。
看看netflix.com,他们做得对(恕我直言)。