c# - RESTful 网络服务

标签 c# .net wcf .net-4.0

我是 RESTful 网络服务的新手。我们正在采用 REST 路线来构建我们的公共(public) Web 服务,供我们的客户使用。我有几个问题。

纯 REST 网络服务是否有任何限制?如果是,那么混合 REST Web 服务会解决这些限制吗?

我正在考虑在授权 header 中使用 SSL + 哈希消息身份验证代码 (HMAC) 以确保安全性以及基于 IP 的过滤。大家怎么看呢?

有没有好的客户端测试工具? 目前我正在使用以下 http://code.google.com/p/rest-client/

那么某种客户端代码生成工具呢?

以下链接是我的信息来源。

http://msdn.microsoft.com/en-us/library/dd203052.aspx

http://blogs.msdn.com/b/endpoint/archive/2010/01/07/getting-started-with-wcf-webhttp-services-in-net-4.aspx

最佳答案

首先要记住的是 REST 服务应该是无状态的,这与 SOAP/RPC 类型的服务接口(interface)相比有很大不同。使用 REST 方法需要您重新考虑您希望客户如何与服务交互,将交互分解为清晰简洁的方法调用。

休息
+ 轻量级消息,开销很小(除了 XML 本身)
+ 易于阅读的结果,可以轻松地使用网络浏览器进行测试
+ 易于实现
- 更宽松的接口(interface),宽松的类型检查

肥皂
+ 更严格,有严格的合约定义
+ 大量可用的开发工具。

查看 WCF MSDN 文档,从一开始就集成了 WCF SOAP 支持,而 REST 支持是最近添加的功能。我自己很难找到有关 REST 服务的身份验证/安全性的文档,因为大多数文档都是针对 SOAP 的。

客户端生成工具:我还没有遇到任何用于 REST 服务的工具,因为 REST 没有像 SOAP 那样定义服务契约。 WADL 是为 REST 服务做的尝试。 http://en.wikipedia.org/wiki/Web_Application_Description_Language http://wadl.codeplex.com/

我有兴趣阅读更多有关身份验证和安全性的回复,因为我自己也在研究这个问题。

关于c# - RESTful 网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3302714/

相关文章:

visual-studio - 如何在Visual Studio 2005中添加WCF服务引用?

c# - FileHelpers .NET 库的最新生产就绪版本是什么?它在哪里?

c# - 什么是移植到 Silverlight 3 的好模拟器?

c# - 在计算机休眠或 sleep 后恢复后,在 WPF 中使用什么事件来更新应用程序?

c# - TDD:测试构造函数设置属性是否有意义?

.net - .net 中的异步套接字是无线程的吗?

c# - 如何创建包含 CRL 分发点的自签名证书

c# - WCF 中同一服务的两个端点,一个安全,一个不安全

c# - 将 Crystal Reports 与 C# 对象一起使用

c# - 在c#中定义对象时使用