本文へスキップ
`Ctrl`+`K`

# 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_version` に `3` を指定しています。:

    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` ヘッダーの値と load の `input_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. 参考

> - groonga-httpd

> - load