4.5. RESTful Service Description Language (RSDL)
RESTful Service Description Language (RSDL) は、REST API 内の構造および要素の記述を単一の全体的な XML 仕様で提供します。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 | major リリース、minor リリース、build および revision を含む API バージョン |
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 が記載され、それらが要求に required (必須) であるかどうかと、データ type を定義する属性を示す parameter 要素のセットが含まれます。parameter 要素には、変更すべき Red Hat Enterprise Virtualization Manager プロパティーを定義する name 要素も含まれます。また、type が collection に指定されている場合には、さらなる parameter_set サブセットも含まれます。 |
response | HTTP 要求の出力を定義します。出力するリソースの構造を定義する type 要素が含まれます。 |
Red Hat Enterprise Virtualization 環境を制御するために全リンクとパラメーター要件をマッピングするメソッドには、アプリケーション内の RSDL を使用します。