我们为什么使用网络服务
Web 服务的强大之处在于它们提供了程序员可以添加到自己的应用程序中的功能,而不管使用何种编程语言。
示例
例如,您可能有一个网站,您希望用户能够在其中输入他们的位置,并且您的网站会返回天气以及他们在 Google 地图上的位置显示。谷歌地图和各种天气网站都提供网络服务,因此网络开发人员可以使用这些功能。如果您的网站是用 Java、PHP 或 python 编码的,则无关紧要。
另一个例子是,如果您有一个商业网站,并且您希望自己的网站
每天显示股票行情。各种公司将提供股票行情网络服务,以便您可以做到这一点。有些是免费的,有些不是。
SOAP 与 RESTful Web 服务
最终,您将需要讨论 RESTful Web 服务和 SOAP 之间的区别,这本身就是一个具有里程碑意义的讨论。但下面是一个简单的用于添加两个数字的静态 Web 服务示例。
休息
http://www.SimpleMathSite.com/Add/5/6/
网站会返回一些类似的东西
<?XML version="1.0" encoding="utf-8"?>
<answer>
11
</answer>
您可以在您的 javascript 或 PHP 代码中使用它。查看 URL,您可以看到您调用了“添加”函数并将值 5 和 6 传递给它。这就是 Web 服务允许用不同语言编写的对象相互通信的方式。
SOAP
SOAP 要复杂得多,但它的优点是 WSDL 文件,它描述了您可以调用的所有远程函数。因此,一些编译器允许您导入 Web 服务并创建可以放置在代码中的对象,而无需查看幕后发生的任何复杂 XML。如果上面的例子有一个 WSDL 文件,一些编译器会允许你导入 web 服务,这样你就可以像这样在你的代码中使用它。
int Answer = SimpleMath.Add(5,6); // No need to parse the XML yourself.
查看这个天气网络服务,了解如何使用 SOAP 的一个很好的例子。如果您想从头开始制作自己的 SOAP 客户端,它提供了示例 HTTP GET 和 POST 请求。
http://www.webservicex.com/globalweather.asmx?op=GetWeather
如果没有网络服务怎么办?
如果没有网络服务,网站无法使用来自其他网站的数据更新其内容,例如航空公司信息、酒店空缺情况,或者您的 Facebook 朋友是否喜欢 Pandora 上的同一首歌曲。