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 |
出力 |
---|---|---|
データベースのリスト |
/ |
データベースのリストを返します (RESTful Web サービスでのみ使用できます。公開されている REST Web サービスでは使用できません)。このエンドポイントでは HTML 表現のみがサポートされ、JSON 表現または XML 表現はサポートされていません。 |
データベース |
/<database name> |
データベースのビューのリストと、各ビューにアクセスするためのリンクを返します。 REST Web サービスの場合、Web サービスによって公開されているビューのリストを返します。 |
ビュー |
/<database name>/views/<view name> |
ビューのデータと、ビューの説明を返します (データは「SELECT * FROM view」クエリの実行結果と同じです)。 |
ビューの行 |
/<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 3/仕様 |
/OpenAPIv3/openapi.json /OpenAPIv3/openapi.yaml |
REST Web サービスでのみ使用できます。RESTful Web サービスでは使用できません。 REST Web サービスで利用可能な操作、入力パラメータ、出力などを記述した OpenAPI 3 ドキュメントを返します。この情報には Web サービスが公開しているビューが反映されます。 この OpenAPI ドキュメントを https://editor.swagger.io に読み込み、仕様の詳細の視覚化、クライアントコードの自動生成、および Web サービスにアクセスするためのリクエスト例の取得を行うことが可能です。 |
OpenAPI 2/Swagger 仕様 |
/OpenAPI/swagger.json /OpenAPI/swagger.yaml |
REST Web サービスでのみ使用できます。RESTful Web サービスでは使用できません。 公開されている REST 用の OpenAPI 2 / Swagger ドキュメントを返します。「OpenAPI バージョン 3」ドキュメントと同様ですが、バージョン 2.0 の仕様に準拠します。 |
RESTful Web サービスを呼び出す手順の例
https://denodo-server.acme.com:9443/denodo-restfulws/admin
returns the list of views of the databaseadmin
.https://denodo-server.acme.com:9443/denodo-restfulws/admin/views/customer
からは、admin
データベースのcustomer
ビューの内容が返されます。https://denodo-server.acme.com:9443/denodo-restfulws/admin/views/customer/1/orders
は、customer
テーブルの中でプライマリキーが1
である行のorders
を、マッピングを使用して閲覧します。
Web コンテナーで HTTPS を有効化していない場合、ポートは 9090 です。
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 |
https://denodo-server.acme.com:9443/denodo-restfulws/ |
INSERT |
POST |
https://denodo-server.acme.com:9443/denodo-restfulws/<database name>/views/<view name> |
UPDATE |
PUT |
https://denodo-server.acme.com:9443/denodo-restfulws/<database name>/views/<view name>/<primary key value> |
DELETE |
DELETE |
https://denodo-server.acme.com:9443/denodo-restfulws/<database>/views/<view name>/<primary key value> |