WADL是一种面向资源的RESTful Web服务描述语言,以XML定义URI、HTTP方法、参数、响应格式及资源嵌套关系,用于生成客户端代码、测试用例和API文档。

WADL(Web Application Description Language)是一种基于XML的机器可读语言,专为描述RESTful Web服务而设计。它不定义协议或传输细节,而是聚焦于“资源”本身——比如一个API里的/users、/orders/{id}这类URI,以及它们支持的HTTP方法(GET/POST/PUT/DELETE)、请求参数、响应格式和嵌套关系。
WADL的核心定位:面向资源的接口说明书
它和WSDL的关系常被类比为“REST之于SOAP”:WSDL面向操作(如getUserById),WADL面向资源(如GET /api/users/{id})。这意味着WADL文档天然反映REST的分层结构——父资源下可有子资源,子资源又可带查询参数或媒体类型变体。
- 每个
元素代表一个URI路径,可嵌套定义子资源 -
描述该路径支持的HTTP动词、请求头、查询参数、请求体结构及可能的响应状态码 - 用
标签明确标注关键参数位置(如URL路径段、query字符串或XML/JSON字段中的某个值),即使已有XSD或JSON Schema - 支持通过
mediaType属性声明不同响应格式(如application/json或application/xml)
WADL的实际用途:生成与测试的桥梁
它不是运行时必需的,但对开发协作和自动化很有价值。只要有一个WADL文件,工具就能自动生成客户端代码、测试用例或API文档,省去手动拼接URL和解析响应的重复劳动。
享有盛誉的PHP高级教程,Zend Framework核心开发人员力作,深入设计模式、PHP标准库和JSON 。 今天,PHP已经是无可争议的Web开发主流语言。PHP 5以后,它的面向对象特性也足以与Java和C#相抗衡。然而,讲述PHP高级特性的资料一直缺乏,大大影响了PHP语言的深入应用。 本书填补了这一空白。它专门针对有一定经验的PHP程序员,详细讲解了对他们最为重要的主题
- 像
wadl2stub这类工具可直接从.wadl文件生成Java/C#等语言的调用桩代码 - 测试框架(如REST Assured)能加载WADL,自动验证所有资源是否按约定返回正确状态码和结构
- 配合XSD或JSON Schema,还能做更细粒度的请求/响应校验,比如确认
节点下必含email字段 - 虽未被W3C标准化,但在JAX-RS生态(如Jersey)中曾是默认生成的描述格式
WADL vs WSDL:关键区别一目了然
两者都用XML描述服务,但设计哲学完全不同。
- WSDL强调“接口+绑定”,先抽象操作再绑定到SOAP/HTTP;WADL从URI出发,直接描述资源行为
- WSDL需配合SOAP协议栈,WADL只依赖HTTP语义(状态码、方法、内容协商)
- WSDL常见于企业级SOAP服务;WADL多见于早期Java REST框架(如Jersey 1.x),如今Swagger/OpenAPI已成主流
- WADL不强制要求HATEOAS,但结构上天然支持资源链接表达(例如用
指向关联资源)
基本上就这些。WADL本身不复杂,但容易忽略它在“资源建模”上的清晰性——不是教你怎么写代码,而是帮你把API想清楚。









