WADL是一种基于XML的RESTful Web服务描述语言,用于定义资源结构、HTTP方法、请求/响应格式及参数约束,充当机器可读的API说明书。

WADL(Web Application Description Language)是一种基于 XML 的描述语言,专门用于定义 RESTful Web 服务的资源结构、HTTP 方法、请求/响应格式及参数约束。它不实现功能,而是像一份“机器可读说明书”,让客户端或工具能自动理解如何与 API 交互。
WADL 的核心定位
WADL 是 REST 架构风格下的类比 WSDL——WSDL 描述 SOAP 服务,WADL 描述基于 HTTP 的资源型服务。它强调资源(URI)、方法(GET/POST/PUT/DELETE)、表示格式(如 application/xml、application/json)和参数(query、path、form),而非远程过程调用语义。
WADL 描述的关键内容
一份典型 WADL 文件会明确说明:
- 资源集合及其 URI 模板(含路径变量,如
/users/{id}) - 每个资源支持的 HTTP 方法及对应输入输出
- 请求参数类型、位置(query/path/header/form)和是否必需
- 响应状态码与对应媒体类型(如
200 OK → application/json) - 引用的 XML Schema(XSD)或 JSON Schema,用于校验请求体或响应体结构
WADL 的常见用途
它本身不运行也不执行,但支撑多种自动化场景:
- 生成客户端 SDK 或服务端骨架代码(例如通过 wadl2java 工具)
- 驱动 API 测试工具(如 SoapUI 对 WADL 的导入支持)
- 辅助 API 文档自动生成(如集成到 JAX-RS 应用时由框架动态暴露
/application.wadl) - 配置代理、网关或策略引擎,统一解析接口契约
WADL 与 WSDL 的关键区别
虽然两者都是描述性语言,但设计哲学不同:
- WSDL 面向操作(operation),绑定协议(SOAP/HTTP),抽象与具体分离明显;
- WADL 面向资源(resource),天然契合 REST 的 URI + HTTP 方法模型,结构更扁平、轻量;
- WADL 不强制要求使用 XML:可描述 JSON 接口,只需在
中声明 mediaType; - WADL 更易手写和人工阅读,适合快速建模小型 REST API。










