WSDL 与 Web Service

更新日期: 2017-05-18 阅读次数: 5860 分类: Java

什么是 WSDL

Web Services Description Language,即Web服务描述语言。采用 XML 格式。

现存四个版本

  • 1.0:2000年
  • 1.1:2001年,依然是目前应用最广泛的版本
  • 1.2:2003年,即后来的2.0
  • 2.0:2007年,虽然更加灵活,但是没有被广泛应用

WSDL 就是一个 XML 格式的文档文件,用于描述

  • 服务 URL 和命名空间
  • 网络服务的类型 (可能是 SOAP 的函数调用,但我说过,WSDL 足够自如地去描述网络服务的广泛内容)
  • 有效函数列表
  • 每个函数的参数
  • 每个参数的类型
  • 每个函数的返回值及其数据类型

它的目的是让你知道该如何使用该服务,包括调用的各种细节信息。WSDL 文档通常用来辅助生成服务器和客户端代码及配置信息。

所以 WSDL 可以被看作是一种规范的接口文档。而不是一个具体的接口的实现。

一个真实的 WSDL 案例,亚马逊 AWS Product Advertising API WSDL Location - Product Advertising API

WSDL 与 Web Service 的关系

WSDL 是 Web Service 三要素的其中之一。

Web Service 包含

  • SOAP(Simple Object Access Protocol) 简单对象访问协议。基于 XML 的协议格式。
  • WSDL(Web Services Description Language) 网络服务描述语言;
  • UDDI(Universal Description Discovery and Integration)一个用来发布和搜索 WEB 服务的协议(非必须);

是否有工具可以辅助生成 WSDL 文件

Web Service 分两种开发模式

  • Contract First。契约先行,即先定义好 WSDL 文件。
  • Code First。先写具体的接口实现,然后通过工具生成 WSDL 文件,或者手工整理。

我觉得,Contract First 的模式更实用一些。因为,会采用 WSDL 的项目,一定是比较正式的项目,调用方与被调用方一定是经过了漫长的需求讨论,才进行到接口定义这一步的。所以,不可能先写代码,后生成 WSDL 文件。

我的疑惑是,如果是手写 XML 格式的 WSDL 文件,会不会太繁琐。几个疑问

  • Eclipse 写 xml 有自动补全功能么?
  • 是否有在线的工具提供 WSDL 模板,引导性的编辑。Eclipse 是否也有此功能?

Eclipse - Version: Neon.3 Release (4.6.3) 内置的 WSDL 编辑器远比我想象的强大。参考链接 Introduction to the WSDL Editor - Eclipsepedia

实际上不需要手写,可以通过 XML -> XSD -> WSDL 的方式自动生成。WSDL 编辑器主要是做语法检测之用。

参考

领取阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。 查看更多联系方式

相关文章

爱评论不评论

近期节日

2020年04月11日 世界帕金森病日
2020年04月19日 谷雨
2020年04月21日 复活节
2020年04月22日 世界地球日
2020年04月23日 世界读书日
2020年04月26日 知识产权日
2020年04月30日 佛诞
2020年04月30日 全国交通安全反思日
2020年05月01日 国际劳动节
2020年05月04日 五四青年节
2020年05月05日 立夏
2020年05月08日 世界红十字日
查看更多节日