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>

表4.5 RSDL 構造の要素

要素説明
descriptionプレーンテキストで記述された RSDL 文書
versionmajor リリース、minor リリース、build および revision を含む API バージョン
schemaXML Schema (XSD) ファイルへのリンク
linksAPI 内の各 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 リンク構造の要素

要素説明
linkAPI 要求の URI。URI の属性 (href) およびリレーションシップタイプの属性 (rel) が含まれます。
requestリンクに必要な要求プロパティーを定義します。
http_methodそのリンクにアクセスするメソッドのタイプ。REST API アクセスの標準 HTTP メソッド (GETPOSTPUTDELETE) が含まれます。
headersHTTP 要求のヘッダーを定義します。一連の header 要素が含まれ、ヘッダーを定義するためのヘッダーの namevalue がそれぞれに記載されます。
bodyHTTP 要求の本文を定義します。リソース typeparameter_set が記載され、それらが要求に required (必須) であるかどうかと、データ type を定義する属性を示す parameter 要素のセットが含まれます。parameter 要素には、変更すべき Red Hat Enterprise Virtualization Manager プロパティーを定義する name 要素も含まれます。また、typecollection に指定されている場合には、さらなる parameter_set サブセットも含まれます。
responseHTTP 要求の出力を定義します。出力するリソースの構造を定義する type 要素が含まれます。
Red Hat Enterprise Virtualization 環境を制御するために全リンクとパラメーター要件をマッピングするメソッドには、アプリケーション内の RSDL を使用します。