2016-07-20 11 views

Antwort

3

Patterns für DSL-Entwicklung für TinkerPop 3.x nicht vollständig etabliert, so einige Änderungen in der Beratung erwarten wie die Zeit fortschreitet. Es gibt umgebende Informationen dazu auf der gremlin-users mailing list.

Wenn Sie Gremlin Server verwenden (oder Groovy in Ihr Projekt einbinden können), sehe ich keinen Grund, nicht einfach eine groovige Metaprogrammierung zu machen, um dies zum Laufen zu bringen. Mit dem Standard Gremlin Server ZIP-Verteilung bearbeiten die generate-modern.groovy Datei diese Zeile am Start sind:

GraphTraversal.metaClass.knows = { delegate.out('knows') } 

dann starten Sie den Server mit:

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

Dann eine einfache curl:

$ 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":{}}} 

Wenn Sie eine komplexe DSL haben, möchten Sie vielleicht nicht, dass all diese Logik in einem groovigen Skript gefangen ist. Einfach genug - bauen Sie einfach ein Standard-Groovy-Projekt auf, konstruieren Sie ein Jar, fügen Sie einen statischen Initialisierer hinzu, um Ihren Metaprogrammierungs-Code aufzurufen und auf den Pfad des Gremlin-Servers zu setzen. Dann muss Ihr Init-Skript nur diesen statischen Initialisierer aufrufen und Ihr DSL wird geladen.

Verwandte Themen