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