Можно ли использовать язык запросов AQL через REST API для выполнения графических запросов?
Спасибо.
Можно ли использовать язык запросов AQL через REST API для выполнения графических запросов?
Спасибо.
Да, API курсора HTTP Query — правильный 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 '{запрос:LET from = (ДЛЯ p IN продуктов 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], type: "RELATED" } INTO productsedge}' HTTP/1.1 400 Bad Request Server: ArangoDB Connection: Keep-Alive Content-Type: application /жсон; charset=utf-8 Content-Length: 82 {"error":true,"errorMessage":"ожидается имя атрибута","code":400,"errorNum":600}