2016-03-30 2 views
2

Я очень новичок в Titan/Gremlin/TinkerPop3, и я провожу эксперименты с Restful API Interface для создания/изменения/удаления вершин/ребер в базе данных.Подключиться к Titan Graph DB с TinkerPop3 Restful Interface

Я в основном хочу посмотреть, можно ли использовать API, который был открыт tinkerpop3 для обработки графа.

Я создал современный граф в гремлина сервере с помощью:

gremlin> graph = TinkerFactory.createModern() 
gremlin> g = graph.traversal() 

Я могу подключиться к Titan через успокоительной API и выполнить:

curl "http://localhost:8182?gremlin=100-1" 
{"requestId":"c2dfb667-0fbe-4796-9a5b-cc472487a5b0","status":{"message":"","code":200,"attributes":{}},"result":{"data":[99],"meta":{}}} 

Но следующий ничего не возвращает:

curl http://localhost:8182 -d '{"gremlin": "g.V()"}' 
{"requestId":"8ba30f35-31e7-46ff-b16e-3e01fb9a49bf","status":{"message":"","code":200,"attributes":{}},"result":{"data":[],"meta":{}}} 

Я сделал мое чтение из: http://tinkerpop.incubator.apache.org/docs/3.0.1-incubating/#_connecting_via_rest

Любая помощь очень ценится. Заранее спасибо.

ответ

5

Когда вы сначала взаимодействовали с Gremlin Console, вы создали TinkerGraph в памяти. Вы вообще не взаимодействовали с сервером Gremlin, поэтому, когда вы вышли из консоли, этот график был потерян.

Графики, обслуживаемые сервером Gremlin, настраиваются в файле gremlin-server.yaml. Его конфигурация описана более подробно в TinkerPop documentation.

Если вы посмотрите на этот example configuration из TinkerPop, то graph configuration для пустого TinkerGraph, но есть дополнительный скрипт, который загружает modern graph. Для выполнения этой конфигурации, передать его в качестве аргумента при запуске сервера:

./bin/gremlin-server.sh ./conf/gremlin-server-rest-modern.yaml 

Этого же подход может быть использован с Титаном, а также, но я настоятельно рекомендую обучение TinkerPop первого, прежде чем глубже Титан. TinkerPop обеспечивает существенную основу для структуры графика и инфраструктуры запросов для Titan.