理解Web服务;SOAP,REST,JSON,XML

6
每当我寻找工作广告时,他们都期望我们具备“熟悉Web服务”或“理解Web服务”的能力。那么他们究竟期望我们做什么呢?是要求我们能够在应用程序中使用现有的Web服务API,还是要求我们知道如何从头开始开发Web服务?
我真的很困惑,因为从零开始开发Web服务应该是一项困难的任务,特别是如果你不在公司工作,像我这样的学生。也许是因为我到目前为止还没有需要开发Web服务。我只是在我的应用程序中使用Web服务来向用户展示一些信息。所以如果有人能够解释一下上述公司的期望,我将不胜感激。
谢谢和问候。
3个回答

5
通常在专业环境中,寻找拥有网络服务知识的人时,他们需要的是具有实际经验的公司自定义网络服务方面的人,而不仅仅是互联网上公共网络服务API的经验。这意味着,他们需要能够开发使用任何类型的网络服务的应用程序,具备各种规范或协议,也可能编写或修改现有的网络服务,至少参与过此类开发,以便熟悉服务器开发人员提出的任何问题。请注意,公司可以采用某种流程与第三方应用程序进行通信,或者必须向它们提供数据。因此,如果您制作了一些使用Facebook或Twitter API的网站,那么只要您真正参与并确切地知道自己正在做什么(而不仅仅是阅读参考文献并使用),那将对您有利。任何经验都是好的,但请注意,几乎所有具有一定编程技能的人都曾经使用过一些公共API,因此这不会是两个申请者之间的区别,所以如果他们没有提到特定的API,他们期望您具有更深入的经验,这样您就可以阅读复杂的WS手册并实现一个可与该WS通信的客户端,甚至可以开发自定义服务。

无论如何,您应该熟悉套接字、HTTP请求、JSON、HTML、SOAP协议(在这种情况下,还有WSDL)、解析输入和构建格式良好的输出等(在PHP中这很容易,但在C ++、Java等语言中则非常不同)

对您来说好消息是,开发Web服务并不那么困难,它更多地类似于从数据库中读取数据并将其打印为XML或JSON,而不是HTML。


3

大多数时候,招聘方希望应聘者具有编写使用SOAP、REST等Webservice的应用程序的能力和经验。如果他们要求您开发Web服务,他们会在广告中特别提到,例如“有JSP、ASP.net Web服务开发经验”等。


但通常他们对此并不清楚。这就是为什么我问的原因。谢谢您,先生。 - mrgenco

2

我认为从基础开始非常重要。那么这些基础是什么?我会尝试解释一下。

  1. 学习http请求,如何参数化一个请求,以及如何处理这个请求。
  2. JSON和XML解析,并了解为什么Web服务使用这些类型作为响应(实际上,在SOAP请求和响应中都是XML格式)。
  3. 为什么需要SOAP服务方法而不是REST服务方法,因为REST更容易处理。
  4. 我不知道你擅长哪种语言,但是有很多Java、PHP、C#等框架可以处理Web服务。我认为你应该从简单的开始学习。

谢谢@ismail。你说得对。编写自己的简单Web服务是了解其工作原理的好方法。顺便说一下,我擅长Java和PHP。但是我不知道如何开发Web服务并将其开放给其他开发人员使用。你能给我一个实际使用Web服务的例子吗? - mrgenco
有一个叫做 Slim Framework 的 PHP 框架,非常简单易用。http://www.slimframework.com/ - Ismail Sahin
看起来使用起来真的很容易。而且他们有很好的文档。再次感谢。 - mrgenco
1
我建议的是,不要进行随意测试,而是考虑一个真正有用的系统,这样你才能真正投入进去,找到实际问题,并且可以从广泛的 Web 服务不同方面来解决问题。例如,如果你擅长 Java 和 PHP,你可以创建一个 MySQL 数据库或使用现有数据库,并创建一个 PHP Web 服务来访问该数据库。然后,你可以创建一个 Java 应用程序,使用该 Web 服务从数据库读取数据。这几乎就是实际 Web 服务的重点所在。 - Carlos Robles
你是对的Carlos,我假设mrgenco没有提供发布到Web服务的数据的问题,当然必须有一个数据库。 - Ismail Sahin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接