クエリAPI

クエリAPI #

この章では、クエリAPIについて説明します。

クエリAPIではカスタムビューテンプレートを実行することができます。 カスタムビューテンプレートとはcsxタイプで作成されたテンプレートです。

カスタムビューテンプレートで許可されたデータベースアクセスは読み取りのみです。

保存されたテンプレートの実行 #

項目説明
MethodGET
Route~/data/query/render
Queryx-www-form-urlencoded
nameテンプレート名

--- テンプレートの作成---
POST ~/data/meta/Templates HTTP/1.1
Authorization: Basic xxxxxxxxxxxxxxxxxxx
Content-Type: application/json
{
    "Name": "QuerySample",
    "Text": "new []{ new { i = 0, s = \"0\" }, new { i = 1, s = \"1\" }, new { i = 2, s = \"2\" } }",
    "Type": "csx"
}

--- リクエスト ---
GET ~/data/query/render?name=QuerySample HTTP/1.1
Authorization: Basic xxxxxxxxxxxxxxxxxxx

--- レスポンス ---
HTTP/1.1 200 OK
Content-Length: 49
Content-Type: application/json; charset=utf-8

[{"i":0,"s":"0"},{"i":1,"s":"1"},{"i":2,"s":"2"}]

テンプレートを渡して実行 #

項目説明
MethodPOST
Route~/data/query/render
BodyJSON オブジェクト
Scriptテンプレート内容(String)

--- リクエスト ---
POST ~/data/query/render HTTP/1.1
Authorization: Basic xxxxxxxxxxxxxxxxxxx
Content-Type: application/json
Accept: application/json

{
    "Script": "new []{ new { i = 0, s = \"0\" }, new { i = 1, s = \"1\" }, new { i = 2, s = \"2\" } }"
}

--- レスポンス ---
HTTP/1.1 200 OK
Content-Length: 49
Content-Type: application/json; charset=utf-8

[{"i":0,"s":"0"},{"i":1,"s":"1"},{"i":2,"s":"2"}]

CSV形式で取得 #

Acceptヘッダフィールドにtext/csvを指定してリクエストする、もしくは、リクエストURLに$format=csvクエリパラメータを付与することでCSVファイルをダウンロードすることが可能です。

このCSVファイルはExcelで開くために、BOM付きUTF8エンコードとして出力されます。

--- リクエスト:Acceptヘッダフィールド ---
GET ~/data/query/render?name=QuerySample HTTP/1.1
Authorization: Basic xxxxxxxxxxxxxxxxxxx
Accept: text/csv

--- リクエスト:$formatクエリパラメータ ---
GET ~/data/query/render?name=QuerySample&$format=csv HTTP/1.1
Authorization: Basic xxxxxxxxxxxxxxxxxxx

--- レスポンス ---
HTTP/1.1 200 OK
Content-Length: 149
Content-Type: text/csv

"i","s"
0,"0"
1,"1"
2,"2"