私は次のものを持っています: - データベースを照会して(おそらく大きな)JSONを受信できるnode.jsサーバー - gremlinサーバー-server-rest-modern.yamlがあるかもしれませんが、おそらくそこに何かが存在する必要があります)動的に作成されたデータを持つREST APIとしてのGremlinサーバー
私の質問は、動的にプログラム的にサーバーによって提供される新しいグラフを追加する方法はありますか?私は自分のノードサーバーにデータベースに問い合わせて、JSONレスポンスをgremlinサーバーに送るようにしたい。そこでは、応答はグラフに変換されます。ノードサーバーから、ユーザーは他の照会を送信して複雑な応答を受け取ることができます。それをどうすれば実現できますか?
私は[1]を使用しようとしましたが、私はどのようにして自分が望むことができるのか分かりません。ミニスクリプトのように、実際に複数の(連鎖した)コマンドをどのように送信しますか?私はコンソールを使用してそれを行う方法を知っていますが、公開されていないAPIがないため、サーバーをRESTサービスとして使用することはありません。アドバイスやいくつかの例を教えてもらえますか?ありがとう!
エイドリアン
[1] https://github.com/jbmusso/gremlin-javascript
編集: 私はいくつかの簡単なコマンドでサーバーにPOSTメッセージを送信するために管理。すべてのコマンド(グラフの作成とクエリ)を含むPOSTを送信すると動作します。ただし、複数のPOSTの場合、コンテキストは保存されません。まず、私はコンテンツとPOSTを送信しています:
その後{
"gremlin" : "graph = TinkerGraph.open(); g = graph .traversal(); graph .addVertex('name', 'adrian', 'age', 21); "
}
、私は
{
"gremlin" : "v2 = graph.addVertex('name', 'gigel', 'age', 22); g.V()"
}
で別のPOSTを送信しかし、私は次のエラーを取得する:
{
"message": "No such property: graf for class: Script4",
"Exception-Class": "groovy.lang.MissingPropertyException",
"exceptions": [
"groovy.lang.MissingPropertyException"
],
"stackTrace": "groovy.lang.MissingPropertyException: No such property: graf for class: Script4\n\tat org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53)\n\tat org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:52)\n\tat org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:307)\n\tat Script4.run(Script4.groovy:1)\n\tat org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:834)\n\tat org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:547)\n\tat javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233)\n\tat org.apache.tinkerpop.gremlin.groovy.engine.ScriptEngines.eval(ScriptEngines.java:120)\n\tat org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda$eval$2(GremlinExecutor.java:314)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat java.lang.Thread.run(Thread.java:745)\n"
}
コンテキストgremlinサーバーに保存されていませんか?私は実行されるスクリプト全体を送信する必要がありますか?後で2つのグラフを作成してクエリしたい場合はどうすればよいですか?
ありがとうございます!