7.1.6. Groonga HTTPサーバー

7.1.6.1. 概要

Groongaサーバを起動する時に --protocol オプションに http を指定すると、HTTPで通信可能になります。また、 --document-root によって静的ページのパスを指定すると、HTTPリクエストに指定されたURIに対応する、パス配下に置かれたファイルを出力します。

GroongaにはHTML + JavaScriptで実装された管理ツールが標準で付属しています。 --document-root を指定しない場合は管理ツールがインストールされているパスが指定されたとみなされますので、ウェブブラウザで http://HOSTNAME:PORT/ にアクセスすると、管理ツールを利用できます。

7.1.6.2. 構文

--protocol http を指定してください。:

groonga --protocol http -d [options...] DB_PATH

7.1.6.3. 使い方

リクエストを送るときはHTTP GETまたはHTTP POSTを使えます。1つのリクエストで1つのコマンドだけ実行できます。1つのリクエストで複数のコマンドを実行することはできません。

リクエストには /d/${コマンド名} というパスを使います。

以下のURLは status を実行します。:

http://127.0.0.1:10041/d/status

HTTP GETを使うときはパラメーターはURLの「クエリー」で指定します。

以下のURLは command_version3 を指定しています。:

http://127.0.0.1:10041/d/status?command_version=3

複数のパラメーターを指定することもできます。:

http://127.0.0.1:10041/d/status?command_version=3&output_pretty=yes

HTTP POSTを使うときは、URLの「クエリー」とHTTPリクエストのボディでパラメーターを指定できます。もし、HTTPリクエストのボディを使うときは Content-Type ヘッダーの値には application/x-www-form-urlencoded を指定しなければいけません。

以下のHTTP POSTリクエストは複数のパラメーターをHTTPリクエストボディで指定しています。:

POST /d/status HTTP/1.1
Host: 127.0.0.1:10041
Content-Length: 35
Content-Type: application/x-www-form-urlencoded

command_version=3&output_pretty=yes

URLの「クエリー」とHTTPリクエストのボディを一緒に使うこともできます。:

POST /d/status?command_version=3 HTTP/1.1
Host: 127.0.0.1:10041
Content-Length: 17
Content-Type: application/x-www-form-urlencoded

output_pretty=yes

load のデータを指定するためにHTTP POSTを使うこともできます。もし、HTTP POSTでデータを送る場合はHTTPリクエストのボディでパラメーターを指定することはできません。パラメーターはURLの「パス」で指定しなければいけません。

指定するデータにあわせて適切なHTTP Content-Type ヘッダーの値と loadinput_type パラメーターの値を指定しなければいけません。利用可能な値は次の通りです。

Content-Type

input_type

説明

application/json

json

JSONデータを送ります。

application/x-apache-arrow-streaming

apache-arrow

Apache Arrowデータを送ります。

URLの「パス」の拡張子で 出力形式 を指定できます。

以下はJSONでレスポンスを受け取るHTTPリクエストです。:

http://127.0.0.1:10041/d/status.json

以下はXMLでレスポンスを受け取るHTTPリクエストです。:

http://127.0.0.1:10041/d/status.xml

7.1.6.4. 参考