RESTful Web サービス¶
Denodo Platform の RESTful Web サービスは、Virtual DataPort サーバー全体のコンテンツを公開する HTTP サービスです。
ドキュメントに明記がない限り、RESTful Web サービスは、公開されている REST Web サービスと同様に使用できます。入力パラメーターは REST Web サービスと同じあり、出力の形式も同様です。
このサービスは、XML ドキュメントと JSON ドキュメントのほか、より理解しやすい HTML ドキュメントも出力できます。
この Web サービスは http://<host of the Denodo server>:9090/denodo-restfulws の URL でデプロイされ、以下のタイプのリソースを公開しています。
リソースのタイプ |
URI 形式 |
表現内容 |
---|---|---|
データベース |
/<database name> |
データベースの説明およびデータベースに存在するビューのリストが表示されます。また、そのビューのスキーマとエレメントにアクセスするためのリンクも示されます。 |
ビュー |
/<database name>/views/<view name> |
ビューのメタデータおよびビューのエレメントのリストが表示されます。 |
ビューの行 |
/<database name>/views/<view name>/<pk field 1>、<pk field 2> |
ビューにプライマリキーが定義されている場合 、ビューにある各行のデータが表示されます。 |
結果セットの行数 |
/<database name>/views/<view name>/$count |
ビューの行数が返されます。フィールドによるフィルターおよび $filter パラメーター (または、そのいずれか) と組み合わせて使用できます。 結果セットの行数の取得の詳細については、「 結果セットの行数の取得 」を参照してください。 |
ビューのメタデータ |
/<database name>/views/<view name>/$metadata |
ビューのメタデータが返されます。このメタデータとして、ビューの説明のほか、ビューのスキーマとアソシエーションを取得するための URL があります。 この URL は XML 表現と JSON 表現でのみサポートされ、HTML 表現ではサポートされていません。したがって、ビューのメタデータを取得するには、適切な |
ビューのスキーマ |
/<database name>/views/<view name>/$schema |
ビューのスキーマが返されます。スキーマは、ビューのフィールドと型のリストです。 この URL は XML 表現と JSON 表現でのみサポートされ、HTML 表現ではサポートされていません。したがって、スキーマを取得するには、適切な RESTful Web サービスのビューのスキーマではなく、REST Web サービスのビューのスキーマをリクエストする場合は以下の点を考慮します。
|
ビューのスキーマ (XSD) |
/<database name>/views/<view name>/$xsd |
ビューのスキーマが XSD 形式で返されます。 この URL は XML 表現でのみサポートされています。 |
アソシエーション |
/<database name>/views/<view name>/$associations |
ビューのアソシエーションが返されます。 この URL は XML 表現と JSON 表現でのみサポートされ、HTML 表現ではサポートされていません。したがって、アソシエーションを取得するには、適切な REST Web サービス (RESTful Web サービスではありません) のビューのアソシエーションをリクエストすると、ビューのすべてのアソシエーションではなく、そのサービスで公開されているアソシエーションのみが返されます。 |
OpenAPI 2/Swagger 仕様 |
/OpenAPI/swagger.json /OpenAPI/swagger.yaml |
REST Web サービスでのみ使用できます。RESTful Web サービスでは使用できません。 公開されている REST Web サービスの OpenAPI 2 / Swagger 仕様が JSON 形式または YAML 形式で返されます。この仕様は、この Web サービスで公開されているビューに基づいており、使用可能な操作、各操作で使用可能なパラメーター、およびそれらの入力スキーマと出力スキーマを規定しています。 生成した仕様は https://editor.swagger.io に読み込むことができます。このエディターでは、仕様の詳細の視覚化、クライアントコードの自動生成、および Web サービスにアクセスするためのリクエスト例の取得ができます。 |
RESTful Web サービスを呼び出す手順の例
http://localhost:9090/denodo-restfulws/admin
からは、admin
データベースのビューのリストが返されます。http://localhost:9090/denodo-restfulws/admin/views/customer
からは、admin
データベースのcustomer
ビューの内容が返されます。http://localhost:9090/denodo-restfulws/admin/views/customer/1/orders
は、customer
テーブルの中でプライマリキーが1
である行のorders
を、マッピングを使用して閲覧します。
RESTful Web サービスの URI 形式に関する他の注意事項
URL では大文字と小文字が区別されます。したがって、
TestView
ビューを呼び出すには、http://.../admin/views/testview
ではなく、http://.../views/TestView
を使用する必要があります。プライマリキーの値に文字
,
を使用している場合、それを%2C
で置き換えます。文字,
は、複数フィールドで構成するプライマリキーの値を記述するための区切り文字であるからです。たとえば、http://.../support/views/viewA/1,value%2Cwith%2Ccommas
とします。$filter
パラメーター以外では、文字列リテラルを引用符で囲まないでください (RESTful Web サービスのパラメーターの詳細については、「 RESTful Web サービスの入力パラメーター 」を参照)。
RESTful 規則に従い、RESTful Web サービスによって Virtual DataPort に送信されるステートメントは、リクエストの HTTP メソッドに依存します。
表「 RESTful Web service: HTTP methods and their equivalent VQL statements 」に、リクエストの HTTP メソッドに応じて RESTful Web サービスから送信されるクエリのタイプ、およびそのタイプに応じた URL の構文を示します。GET リクエストでは、構文が大きく異なることがあるので、それについては以降で説明します。
VQL ステートメント |
HTTP メソッド |
リクエストの URL の構文 |
---|---|---|
SELECT |
GET |
http://localhost:9090/denodo-restfulws/ |
INSERT |
POST |
http://localhost:9090/denodo-restfulws/<database name>/views/<view name> |
UPDATE |
PUT |
http://localhost:9090/denodo-restfulws/<database name>/views/<view name>/<primary key value> |
DELETE |
DELETE |
http://localhost:9090/denodo-restfulws/<database>/views/<view name>/<primary key value> |