Можно ли использовать язык запросов AQL через REST API для создания запросов к графам?Операции графа ArangoDB через REST API
Спасибо.
Можно ли использовать язык запросов AQL через REST API для создания запросов к графам?Операции графа ArangoDB через REST API
Спасибо.
Да, HTTP Query cursor API - это правильный API для этого. Он позволяет выполнять запросы AQL через HTTP.
Пример (с запросом, не графа):
curl \
-X POST \
--dump - \
"http://localhost:8529/_db/_system/_api/cursor" \
--data '{"query":"FOR u IN users RETURN u","count":true}'
Вы можете поместить свою строку AQL запроса (с использованием функции графа) в атрибуте запроса query
. Параметры привязки необязательны. При использовании, они могут быть помещены в дополнительный bindVars
атрибут запроса:
curl \
-X POST \
--dump - \
"http://localhost:8529/_db/_system/_api/cursor" \
--data '{"query":"FOR u IN users FILTER u.name == @name RETURN u","bindVars":{"name":"foobar"}}'
Отлично! Но этот AQL ниже отлично работает в редакторе AQL, но не REST.
curl -X POST --dump - http://localhost:8529/_db/database/_api/cursor --data '{query: LET from = (FOR p IN products FILTER p.name == "p1" RETURN p._id) LET to = (FOR p IN products FILTER p.name == "p2" RETURN p._id) INSERT {_from: from [0], _to: to [0], введите: "RELATED"} INTO productsedge} ' HTTP/1.1 400 Плохой запрос Сервер: ArangoDB Connection: Keep-Alive Тип контента: application/json; charset = utf-8 Content-Length: 82 {"error": true, "errorMessage": "Ожидание имени атрибута", "code": 400, "errorNum": 600}