4.5. RESTful Service Description Language(RSDL)
RESTful Service Description Language(RSDL)提供了在整个 XML 文件中的 REST API 中的结构和项描述。使用以下请求来调用 RSDL。
GET /api?rsdl HTTP/1.1 Accept: application/xml
产生以下格式的 XML 文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <rsdl href="/api?rsdl" rel="rsdl"> <description>...</description> <version major="3" minor="1" build="0" revision="0"/> <schema href="/api?schema" rel="schema"> <name>...</name> <description>...</description> </schema> <links> <link href="/api/capabilities" rel="get"> ... </link> ... </links> </rsdl>
表 4.5. RSDL 结构项
项 | 描述 |
---|---|
description | RSDL 文件的描述。 |
version | API 版本(包括 major 版本、minor 版本、build 和 revision )。 |
schema | 到 XML schema(XSD)文件的链接。 |
links | 定义 API 中的每个 link 。 |
每个
link
项包括以下结构:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <rsdl href="/api?rsdl" rel="rsdl"> ... <links> <link href="/api/..." rel="..."> <request> <http_method>...</http_method> <headers> <header> <name>...</name> <value>...</value> </header> ... </headers> <body> <type>...</type> <parameters_set> <parameter required="..." type="..."> <name>...</name> </parameter> ... </parameters_set> </body> </request> <response> <type>...</type> </response> </link> ... </links> </rsdl>
表 4.6. RSDL 连接结构项
项 | 描述 |
---|---|
link | API 请求的 URI,它包括一个 URI 属性(href )和一个关系类型属性(rel )。 |
request | 定义了连接所需的请求属性。 |
http_method | 访问这个连接的方法类型,它包括 REST API 访问的标准 HTTP 方法:GET 、POST 、PUT 和 DELETE 。 |
headers | 定义 HTTP 请求的头。它包括一组 header 项,每个项中包括了一个头 name 和 value 来定义这个头。 |
body | 定义 HTTP 请求的内容。它包括一个资源 type 和 parameter_set (包括一组 parameter 项)。每个 parameter 项都包括了一个属性来指定这个项对于请求和数据 type 是否是必需的 ;这个项还包括了一个 name 项来定义要修改的 Red Hat Enterprise Virtualization Manager 属性。另外,如果 type 被设置为 collection ,还会有一个 parameter_set 子集。 |
response | 定义 HTTP 请求的输出。它包括一个 type 项来定义输出的资源结构。 |
在应用程序中使用 RSDL 作为一个方法,来映射控制 Red Hat Enterprise Virtualization 环境所需的所有连接和参数。