web api比socket通信更有优势吗?

时间:2012-07-31 07:21:54

标签: web-services asp.net-web-api

当我编写软件需要调用服务器来运行时,web api是否比套接字通信更有优势?

如果我们编写一个web api,我们是否可以利用http,http服务器,Web应用程序框架来做更多的工作,而不是通过套接字执行相同的功能?

如果我的客户通过互联网呼叫我的服务器,我们没有任何理由不将其作为web api实现吗?

2 个答案:

答案 0 :(得分:2)

我会说'web API'是一种'套接字API'。虽然套接字API基本上可以通过套接字运行,但是使用HTTP协议完成了Web API。这有一点限制,但通常优势更重要:

  1. 您可以重复使用现有的协议和方法,而不是重新创建自己的协议和方法。这使得您的工作变得更轻松,并且更容易为您的用户而无需从头开始实施所有内容;
  2. 您可以使用现有工具(甚至是常规网络浏览器)来调试您的API。好吧,使用套接字API,你通常可以使用telnet,但是使用更复杂的情况,Web浏览器或任何HTTP查询工具都更容易使用;
  3. 您重复使用HTTP端口80(和/或443)。这通常意味着任何防火墙都不太可能禁止用户访问您的服务使用的端口;
  4. 毕竟,如果您选择了正确的技术,您可以将它们重新用于'甚至'作为'网页。例如,您可以使用AJAX或类似技术从网页上的脚本中捕获API中的数据。
  5. 更好的是,如果你只是使用XML作为API输出,你基本上可以同时使它成为一个API和一个网页。您只需向其添加对XSLT样式表的引用,并且只要Web浏览器使用该API,它就会使用它将原始XML转换为HTML。

答案 1 :(得分:0)

Web服务仅输出XML而不是HTML。您应该创建Web服务的原因与创建网站的原因没有区别

可以远程调用Web API。

可以以独立方式调用Web API。这意味着您可以允许用户(和您)使用您为最终客户构建的其他界面。

您可以按照自己的方式对API进行编程。唯一的要求是生成有效的XML。所以,是的,你可以使用一些框架,你应该使用Web服务器作为输出网页的那个。

如果客户端通过Internet(SAAS)调用您的服务,则创建Web服务允许您提供新的界面。需要Web服务才能使用SOAP并允许刷新网页,并将数据提供给繁重的客户端。

相关问题