Графические операции ArangoDB через REST API

Можно ли использовать язык запросов AQL через REST API для выполнения графических запросов?

Спасибо.


person Ralf Stein    schedule 11.06.2015    source источник


Ответы (2)


Да, 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"}}'
person stj    schedule 12.06.2015

Большой! Но этот 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}

person Ralf Stein    schedule 25.06.2015