Tinkerpop 2は、ユーザー定義のステップをGremlin.defineStep(..)でサポートするために使用されます。Tinkerpop 3でカスタムステップを定義する方法は?
Tinkerpop 3を使用して同じように達成するにはどうすればよいですか?
カスタムステップを作成し、一連のトラバーサルステップを組み合わせるGremlin APIはありますか?
どのような提案も高く評価されます。 DSL開発のための
おかげ Kaniska
Tinkerpop 2は、ユーザー定義のステップをGremlin.defineStep(..)でサポートするために使用されます。Tinkerpop 3でカスタムステップを定義する方法は?
Tinkerpop 3を使用して同じように達成するにはどうすればよいですか?
カスタムステップを作成し、一連のトラバーサルステップを組み合わせるGremlin APIはありますか?
どのような提案も高く評価されます。 DSL開発のための
おかげ Kaniska
パターンは完全にTinkerPop 3.xのために設立され、その時間が進むにつれてアドバイスにいくつかの変更を期待していません。 gremlin-users mailing listにこれに関する情報があります。
Gremlin Serverを使用している場合(またはプロジェクトにGroovyを組み込むことができます)、これを動作させるためには何か面白いメタプログラミングを行うだけの理由はありません。その後
bin/gremlin-server.sh conf/gremlin-server-rest-modern.yaml
シンプルカール:
GraphTraversal.metaClass.knows = { delegate.out('knows') }
が、その後でサーバーを起動します。
生成-modern.groovyファイルを標準グレムリンサーバーzipディストリビューションの編集を使用すると、開始時に、この行を含めます$ curl "http://localhost:8182?gremlin=g.V(1).knows().values('name')"
{"requestId":"66c2c929-9cc2-491d-acb0-ae4d7eef6b00","status":{"message":"","code":200,"attributes":{}},"result":{"data":["vadas","josh"],"meta":{}}}
複雑なDSLをお持ちの場合、そのロジックをGroovyスクリプトにトラップしたくない場合があります。簡単ですが、標準的なGroovyプロジェクトを構築し、jarを構築し、静的な初期化子の形式を組み込んでメタプログラミングコードを呼び出し、Gremlin Serverのパスに配置します。 initスクリプトはその静的初期化子を呼び出すだけで、DSLがロードされます。