diff --git a/readme/terminusx-db/reference-guides/http-api.md b/readme/terminusx-db/reference-guides/http-api.md index ece03086..2cde19a6 100644 --- a/readme/terminusx-db/reference-guides/http-api.md +++ b/readme/terminusx-db/reference-guides/http-api.md @@ -1,6 +1,241 @@ +--- +description: TerminusDB HTTP API documentation. +--- + # HTTP API Reference -API definitions for terminusdb. +## Introduction + +This page contains documentation on how to use +[TerminusDB](https://terminusdb.com/) through HTTP API operations. + +This page includes examples using [`curl`][curl]. To get started with these, +first set up some environment variables. These will depend on which host you are +using. + +[curl]: https://curl.se/ + +{% tabs %} + +{% tab title="Local" %} +First, set the user. For a new installation, use `admin`. + +```shell +export TERMINUSDB_USER="admin" +``` + +Then, set the password. For a new installation, use `root`. + +```shell +export TERMINUSDB_PASS="root" +``` + +Finally, set the organization housing your databases. For a new installation, +use `admin`. + +```shell +export TERMINUSDB_ORG="admin" +``` +{% endtab %} + +{% tab title="TerminusX" %} +First, you need an access token (API key). [Get an API key][get_api_key] if you +don't already have one. + +```shell +export TERMINUSDB_ACCESS_TOKEN="replace_this_with_your_api_key" +``` + +Finally, set the organization housing your databases. On initial sign-up to +TerminusX, you start with an organization (or team) with the same name as your +username. + +```shell +export TERMINUSDB_ORG="my_user" +``` +{% endtab %} + +{% endtabs %} + +[get_api_key]: readme/terminusx/quick-start/get-api-key.md + +## Databases + +These endpoints support the management of databases. + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/" method="get" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +{% tabs %} + +{% tab title="Local" %} +```shell +curl "http://localhost:6363/api/" \ + -u $TERMINUSDB_USER:$TERMINUSDB_PASS +``` +{% endtab %} + +{% tab title="TerminusX" %} +```shell +curl "https://cloud.terminusdb.com/$TERMINUSDB_ORG/api/" \ + -H "API_TOKEN: $TERMINUSDB_ACCESS_TOKEN" +``` +{% endtab %} + +{% endtabs %} + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/db/{organization}/{database}" method="post" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +{% tabs %} + +{% tab title="Local" %} +Create a database with the identifier `my_database`: + +```shell +curl "http://localhost:6363/api/db/$TERMINUSDB_ORG/my_database" \ + -u $TERMINUSDB_USER:$TERMINUSDB_PASS \ + -X POST \ + -H "Content-Type: application/json" \ + -d '{"label": "My Database", "comment": "The best database ever"}' +``` +{% endtab %} + +{% tab title="TerminusX" %} +Create a database with the identifier `my_database`: + +```shell +curl "https://cloud.terminusdb.com/$TERMINUSDB_ORG/api/db/$TERMINUSDB_ORG/my_database" \ + -H "API_TOKEN: $TERMINUSDB_ACCESS_TOKEN" \ + -X POST \ + -H "Content-Type: application/json" \ + -d '{"label": "My Database", "comment": "The best database ever"}' +``` +{% endtab %} + +{% endtabs %} + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/db/{organization}/{database}" method="delete" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +{% tabs %} + +{% tab title="Local" %} +Delete the database with the identifier `my_database`: + +```shell +curl "http://localhost:6363/api/db/$TERMINUSDB_ORG/my_database" \ + -u $TERMINUSDB_USER:$TERMINUSDB_PASS \ + -X DELETE +``` +{% endtab %} + +{% tab title="TerminusX" %} +Delete the database with the identifier `my_database`: + +```shell +curl "https://cloud.terminusdb.com/$TERMINUSDB_ORG/api/db/$TERMINUSDB_ORG/my_database" \ + -H "API_TOKEN: $TERMINUSDB_ACCESS_TOKEN" \ + -X DELETE +``` +{% endtab %} + +{% endtabs %} + +## Documents + +These endpoints support the Document Interface. + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/document/{resource}" method="get" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/document/{resource}" method="post" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/document/{resource}" method="put" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/document/{resource}" method="delete" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +## JSON Diff & Patch + +These endpoints support diff and patch operations on JSON. + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/diff" method="post" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/patch" method="post" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +## WOQL + +These endpoints support the Web Object Query Language (WOQL). + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/woql" method="post" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/woql/{path}" method="post" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +## Branch + +These endpoints provide branch operations on a database. + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/branch/{path}" method="post" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/branch/{path}" method="delete" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/squash/{path}" method="get" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/reset/{path}" method="post" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +## Prefixes + +These endpoints provide access to prefixes. + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/prefixes/{path}" method="get" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +## Optimize + +These endpoints provide operations to optimize a database. + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/optimize/{path}" method="post" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +## Server + +These endpoints provide information about the server. + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/info" method="get" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml" path="/ok" method="get" %} +[https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml](https://raw.githubusercontent.com/terminusdb/openapi-specs/various/terminusdb.yaml) +{% endswagger %} ### General rule