【发布时间】:2010-10-29 14:57:10
【问题描述】:
我想编写一个基于 REST 的 HTTP API,它可以从 .NET 和任何其他语言(例如 Python)访问。
我应该为此使用 WCF 吗?或者这会使其他语言更难与我的 API 互操作?
我希望服务器完全不携带任何状态,并且我希望能够利用 HTTP 持久连接,因为典型的客户端会连续进行许多 HTTP 调用。 (可能连续 2 小时通话)
我可以使用 .NET 4。
【问题讨论】:
我想编写一个基于 REST 的 HTTP API,它可以从 .NET 和任何其他语言(例如 Python)访问。
我应该为此使用 WCF 吗?或者这会使其他语言更难与我的 API 互操作?
我希望服务器完全不携带任何状态,并且我希望能够利用 HTTP 持久连接,因为典型的客户端会连续进行许多 HTTP 调用。 (可能连续 2 小时通话)
我可以使用 .NET 4。
【问题讨论】:
WCF 中有新的东西来支持 HTTP 和 REST。看,http://wcf.codeplex.com/
我在这里写了一篇介绍性博文http://www.bizcoder.com/index.php/2010/10/28/wcf-http/
【讨论】:
WCF 可以做任何您需要的事情,但它的学习曲线很陡峭。 Microsoft 的 REST Starter Kit 非常有用。
另一个 .NET REST 框架是 OpenRasta - 我没有亲自使用过它,但我听说过它的好消息。
【讨论】:
您应该考虑 WCF、ASP.NET MVC 和 WCF 数据服务。本文对每种方法的优缺点进行了合理的讨论:
另请参阅这个 SO 问题:ASP.NET MVC and WCF
【讨论】:
我建议您尝试使用 WCF。首先创建一个简单的 Web 服务(只需一次调用),看看它是否适合您的需求。不应该花你很长时间来做到这一点。您可能会发现this tutorial 很有用。
【讨论】: