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>
| 项 | 描述 |
|---|---|
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>
| 项 | 描述 |
|---|---|
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 环境所需的所有连接和参数。