7.1.6. Groonga HTTP server#

7.1.6.1. Summary#

You can communicate by HTTP if you specify http to --protocol option. And output a file that is put under the path, and correspond to specified URI to HTTP request if you specify static page path by --document-root.

Groonga has an Web-based administration tool implemented with HTML and JavaScript. If you don’t specify --document-root, regarded as administration tool installed path is specified, so you can use administration tool to access http://HOSTNAME:PORT/ in Web browser.

7.1.6.2. Syntax#

You must specify --protocol http:

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

7.1.6.3. Usage#

You can use HTTP GET or HTTP POST to send a request. One request runs only one command. You can’t run multiple commands by one request.

You must use /d/${COMMAND_NAME} path for request.

Here is an example URL to run status:

http://127.0.0.1:10041/d/status

If you use HTTP GET, you must specify parameters as URL “query”.

Here is an example URL to specify 3 as command_version:

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

You can also specify multiple parameters:

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

If you use HTTP POST, you can specify parameters by URL “query” and HTTP request body. If you use HTTP request body, you must specify application/x-www-form-urlencoded as Content-Type header value.

Here is an example HTTP POST request to specify multiple parameters by HTTP request body:

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

You can mix URL “query” and HTTP request body:

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

You can also use HTTP POST to specify data for load. If you send data by HTTP POST, you can’t specify parameters as HTTP body. You must specify parameters by URL “path”.

You must specify suitable HTTP Content-Type header value and load input_type parameter value for your data. Here are available values:

Content-Type

input_type

Description

application/json

json

Send JSON data.

application/x-apache-arrow-streaming

apache-arrow

Send Apache Arrow data.

You can specify Output format as URL “path” extension.

Here is an example HTTP request to get response as JSON:

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

Here is an example HTTP request to get response as XML:

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

7.1.6.4. See also#