WADL

news/2025/2/19 14:58:05/
SOA

 

WADL

 

越来越多的 依赖于Web的企业(像Google, Yahoo, Amazon, Flickr等)正在开发基于HTTP的应用(通过XML访问其内部数据)。基于文本的协议描述基于XMLSchema的数据格式描述来描述应用;为了使用这种基于HTTP的web应用(尤其是使用XML进行交互的应用),WADL被设计用来提供一种机器可处理的协议描述格式。

 

1,Web应用(Web Application

Web应用被定义为一种基于HTTP的应用,它们的交互应该能够被计算机处理。有很多存在的Web站点(比如一些基于HTTP的应用),为了能成功地运用他们,大量的这些站点都需要人来识别它们的功能

基于已经存在的Web架构和基础结构

不依赖于特定的平台和编程语言

促进了应用的重用(不仅限于浏览器)

能够和其他的Web应用或桌面应用集成。

使用它们的过程中交换的内容(表象)有明确的语义

 

最后一个必须遵守的要求是使用自描述的数据格式,比如XMLJSONXML尤其适合,因为它允许在特定的应用领域 定义特定的模式(complete custom schema 或者 利用扩展点把 特定的格式片段(custom micro-format嵌入到一个已经存在的模式。

鉴于上面Web应用的定义,我们能够看出一个应用的下面几个方面能够被机器可处理的格式有效地描述

 

资源的集合:类似在网站站点上提供的资源

资源之间的关系:描述资源之间的联系,即引用和因果(链接)

适用于每个资源的方法(Unique Interface):适用于所有资源的HTTP方法,期望的输入输出以及支持的格式。

资源表象的格式:所支持的MIME类型和数据模式(XMLSchema)的使用。

 

1.2 用例(使用案例)

 

现在描述Web应用的主要方式是基于文本的文档加上一个或多个数据格式的定义,比如XMLSchema虽然完全足够供人类消费,但这个级别的描述排除了如下的一些用例,这些用例需要对计算机来说更加友好的描述格式。

 

应用的模型化和形象化Visualization):支持资源建模工具的开发,资源建模工具能够对资源之间的关系和资源的编排进行分析和处理。

代码生成:自动生成 存根(stub), 骨架代码 和 操作资源表象的代码。

配置:用一种轻便的格式来配置客户端和服务器。

 

对每个应用来说都有一个共同的基础,这种协议可重用可扩展(总比发明一种新的描述格式要好),这将是很有用的。

 

 

 

1.3 WADL示例

 

下面是一个雅虎新闻搜索应用WADL描述示例。

 

 

Xml代码   收藏代码
  1. <?xml version="1.0"?>  
  2. <application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xsi:schemaLocation="http://research.sun.com/wadl/2006/10 wadl.xsd"  
  4.     xmlns:tns="urn:yahoo:yn" xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
  5.     xmlns:yn="urn:yahoo:yn" xmlns:ya="urn:yahoo:api" xmlns="http://research.sun.com/wadl/2006/10">  
  6.     <grammars>  
  7.         <include href="NewsSearchResponse.xsd" />  
  8.         <include href="Error.xsd" />  
  9.     </grammars>  
  10.   
  11.     <resources base="http://api.search.yahoo.com/NewsSearchService/V1/">  
  12.         <resource path="newsSearch">  
  13.             <method name="GET" id="search">  
  14.                 <request>  
  15.                     <param name="appid" type="xsd:string" style="query" required="true" />  
  16.                     <param name="query" type="xsd:string" style="query" required="true" />  
  17.                     <param name="type" style="query" default="all">  
  18.                         <option value="all" />  
  19.                         <option value="any" />  
  20.                         <option value="phrase" />  
  21.                     </param>  
  22.                     <param name="results" style="query" type="xsd:int" default="10" />  
  23.                     <param name="start" style="query" type="xsd:int" default="1" />  
  24.                     <param name="sort" style="query" default="rank">  
  25.                         <option value="rank" />  
  26.                         <option value="date" />  
  27.                     </param>  
  28.                     <param name="language" style="query" type="xsd:string" />  
  29.                 </request>  
  30.                 <response>  
  31.                     <representation mediaType="application/xml" element="yn:ResultSet" />  
  32.                     <fault status="400" mediaType="application/xml" element="ya:Error" />  
  33.                 </response>  
  34.             </method>  
  35.         </resource>  
  36.     </resources>  
  37. </application>  
 

 

28行开始一个应用的描述,定义在应用描述的其他地方要用到的XML命名空间。

29行定义了服务要用到的XML语法(grammars),这里包含了两个XMLSchema文件

的引用。

1645行描述了雅虎新闻搜索的Web资源和这个资源支持的HTTP方法。

1843行描述了 "search" GET方法,

1936行描述了 方法的输入,

3742行描述了 方法可能的输入,



http://www.ppmy.cn/news/741271.html

相关文章

spring security权限路由匹配restful格式的详情id设计

解决方案&#xff1a; 先直接说下解决方案&#xff0c;权限点设计成如下&#xff1a; /api/books/{id:\d*}问题描述&#xff1a; 获取书本详情的标准restful路由&#xff0c;一般是这样的/api/books/12&#xff0c; 12即该book的id&#xff0c;如果需要拥有访问该路由的权限…

avl

avl树&#xff0c;不管是插入&#xff0c;还是查找&#xff0c;还是搜索&#xff0c;平均的时间都是logn的复杂度 其中有四个基本旋转LL&#xff0c;LR&#xff0c;RR&#xff0c;RL 另外&#xff0c;删除的实现还是比较繁琐的&#xff0c;之前写过插入的实现&#xff0c;删除不…

Spark Sql 4/5

4. 用户自定义函数 通过spark.udf功能用户可以自定义函数。 4.1用户自定义UDF函数 Shellscala> val df spark.read.json("examples/src/main/resources/people.json")df: org.apache.spark.sql.DataFrame [age: bigint, name: string]​scala> df.show()--…

【UE5 Cesium】11-Cesium for Unreal 切换Dynamic Pawn为其它Pawn

前言 我们知道在Cesium for Unreal中默认使用的是DynamicPawn来浏览地图场景。DynamicPawn适用全球浏览&#xff0c;可以按自定义曲线进行飞行。但是DynamicPawn是使用的是地理参考坐标系&#xff0c;并不是标准的UE坐标系&#xff0c;当我们全球浏览结束后&#xff0c;可能需要…

合肥厨师证报名多少钱

合肥如何办理厨师证&#xff0c;合肥厨师证报名多少钱 厨师的职业素质包括很多内容&#xff0c;主要的方面是要有高超的技能。具体来说&#xff0c;作为一个合格的厨师&#xff0c;更要精细的刀&#xff0c;要正确掌握热量&#xff0c;准确品味调味品。具有良好的文化知识素养…

谈下土豪金5S的感受

谈下土豪金5S的感受&#xff1a;外观上和5区别不算太大&#xff0c;所谓金色其实更贴近香槟色&#xff0c;比想像中好看很多&#xff0c;屏幕也没明显差别。最直观的提升是运行速度&#xff0c;A7处理器就是快&#xff0c;打开各种app和多任务处理时非常流畅。其他功能还没来得…

深信服 网络相关面试题及部分答案

直接开始 1. POEAF&#xff0c;AT&#xff0c;BT三种供电标准&#xff0c;及其最大输出功率。 2. 二三层转发基本原理 3. 结构体占用空间&#xff0c;sizeof与strlen分别对指针和数组求值 4. 端口自协商内容&#xff0c;协商过程及原理。 A&#xff1a; 快速连接脉冲&…

SD-WAN如何保障企业数据传输安全?

SD-WAN可实现总部-分支、总部-分支-数据中心、总部-数据中心、总部-分支-云服务等不同形式的企业组网&#xff0c;实现数据互联互通。 那SD-WAN是怎么保障企业数据传输安全&#xff0c;也是企业重点关注的内容。 讲到SD-WAN的安全性我们可以从系统安全和业务安全两个方面来进…