WADL
越来越多的 依赖于Web的企业(像Google, Yahoo, Amazon, Flickr等)正在开发基于HTTP的应用(通过XML访问其内部数据)。用基于文本的协议描述和基于XMLSchema的数据格式描述来描述应用;为了使用这种基于HTTP的web应用(尤其是使用XML进行交互的应用),WADL被设计用来提供一种机器可处理的协议描述格式。
1,Web应用(Web Application)
Web应用被定义为一种基于HTTP的应用,它们的交互应该能够被计算机处理。有很多存在的Web站点(比如一些基于HTTP的应用),为了能成功地运用他们,大量的这些站点都需要人来识别它们的功能。
l 基于已经存在的Web架构和基础结构
l 不依赖于特定的平台和编程语言
l 促进了应用的重用(不仅限于浏览器)
l 能够和其他的Web应用或桌面应用集成。
l 使用它们的过程中交换的内容(表象)有明确的语义
最后一个必须遵守的要求是使用自描述的数据格式,比如XML或JSON。XML尤其适合,因为它允许在特定的应用领域 定义特定的模式(complete custom schema) 或者 利用扩展点把 特定的格式片段(custom micro-format)嵌入到一个已经存在的模式。
鉴于上面Web应用的定义,我们能够看出一个应用的下面几个方面能够被机器可处理的格式有效地描述
l 资源的集合:类似在网站站点上提供的资源
l 资源之间的关系:描述资源之间的联系,即引用和因果(链接)
l 适用于每个资源的方法(Unique Interface):适用于所有资源的HTTP方法,期望的输入输出以及支持的格式。
l 资源表象的格式:所支持的MIME类型和数据模式(XMLSchema)的使用。
1.2 用例(使用案例)
现在描述Web应用的主要方式是基于文本的文档加上一个或多个数据格式的定义,比如XMLSchema。虽然完全足够供人类消费,但这个级别的描述排除了如下的一些用例,这些用例需要对计算机来说更加友好的描述格式。
l 应用的模型化和形象化(Visualization):支持资源建模工具的开发,资源建模工具能够对资源之间的关系和资源的编排进行分析和处理。
l 代码生成:自动生成 存根(stub), 骨架代码 和 操作资源表象的代码。
l 配置:用一种轻便的格式来配置客户端和服务器。
对每个应用来说都有一个共同的基础,这种协议可重用可扩展(总比发明一种新的描述格式要好),这将是很有用的。
1.3 WADL示例
下面是一个雅虎新闻搜索应用的WADL描述示例。
<?xml version="1.0"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://research.sun.com/wadl/2006/10 wadl.xsd"
xmlns:tns="urn:yahoo:yn" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:yn="urn:yahoo:yn" xmlns:ya="urn:yahoo:api" xmlns="http://research.sun.com/wadl/2006/10">
<grammars>
<include href="NewsSearchResponse.xsd" />
<include href="Error.xsd" />
</grammars>
<resources base="http://api.search.yahoo.com/NewsSearchService/V1/">
<resource path="newsSearch">
<method name="GET" id="search">
<request>
<param name="appid" type="xsd:string" style="query" required="true" />
<param name="query" type="xsd:string" style="query" required="true" />
<param name="type" style="query" default="all">
<option value="all" />
<option value="any" />
<option value="phrase" />
</param>
<param name="results" style="query" type="xsd:int" default="10" />
<param name="start" style="query" type="xsd:int" default="1" />
<param name="sort" style="query" default="rank">
<option value="rank" />
<option value="date" />
</param>
<param name="language" style="query" type="xsd:string" />
</request>
<response>
<representation mediaType="application/xml" element="yn:ResultSet" />
<fault status="400" mediaType="application/xml" element="ya:Error" />
</response>
</method>
</resource>
</resources>
</application>
第2—8行开始一个应用的描述,定义在应用描述的其他地方要用到的XML命名空间。
第2—9行定义了服务要用到的XML语法(grammars),这里包含了两个XMLSchema文件
的引用。
第16—45行描述了雅虎新闻搜索的Web资源和这个资源支持的HTTP方法。
第18—43行描述了 "search" GET方法,
第19—36行描述了 方法的输入,
第37—42行描述了 方法可能的输入,
分享到:
相关推荐
1. **Jersey简介**: Jersey是一个开源框架,用于构建符合JAX-RS标准的RESTful服务。它提供了丰富的特性和工具,包括注解驱动的编程模型、内容协商、过滤器、拦截器等,使得开发者可以便捷地创建、部署和管理...
### 一、PHP简介 1. **起源与特性**:PHP由Rasmus Lerdorf在1995年创建,最初用于追踪他的在线简历的访问者。PHP现在是服务器端的脚本语言,可以嵌入到HTML中,以动态生成网页内容。 2. **运行环境**:PHP通常运行...
#### 四、SoapUI工具简介 - **功能**: - 测试SOAP和RESTful服务。 - 支持数据驱动测试。 - 自动生成测试脚本。 - 集成测试结果报告。 - **使用场景**: - 单元测试、集成测试和系统测试。 - 功能测试、性能...
#### 一、SoupUI简介 SoapUI是一款强大的开源工具,用于Web服务测试。在Web服务的开发过程中,由于其通常不提供直观的用户界面供最终用户或测试人员直接使用,因此在SoapUI这类工具出现之前,测试人员往往需要自己...
简介: 内容简介 《Java Web 服务:构建与运行(影印版)》提供了对Java的API的一个全面介绍,包括针对XML Web服务的JAX-WS和针对RESTful Web服务的JAX-RS。《Java Web服务:构建与运行》通过提供混合架构概述、...
#### 一、SoapUI 简介 **SoapUI** 是一款功能强大的工具,专为Web服务测试而设计。它不仅支持SOAP协议,还兼容REST和其他多种协议,是一款全面且易于使用的自动化测试解决方案。此外,SoapUI提供了一个可扩展的测试...
#### 一、REST简介与核心概念 **REST(Representational State Transfer,表述性状态转移)**是一种设计网络应用程序的架构风格,最初由Roy Fielding在其2000年的博士论文中提出。REST的核心理念是通过HTTP协议来...
1. **CXF简介**:CXF( formerly XFire)是一个融合多种Web服务技术的框架,它的名字来源于两个主要组件——XFire和Celtix的合并。它不仅支持SOAP,还支持RESTful风格的服务,使得开发者可以根据项目需求选择合适的...
4. **自动化的文档生成**:Jersey 支持为服务自动生成 WADL(Web Application Description Language)文档。这有助于提高服务的可维护性和可发现性,同时也方便了其他开发团队理解并使用这些服务。 5. **广泛的社区...
#### 一、Jersey框架简介 Jersey是Java平台上用于构建RESTful Web服务的一种开源框架,它提供了多种工具和服务,支持开发者轻松地创建和部署RESTful应用程序。根据描述,我们可以了解到Jersey的核心组成部分主要...