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 프로젝트를 만들고 jar를 만들고 정적 초기화 프로그램을 포함하여 메타 프로그래밍 코드를 호출하여 Gremlin Server 경로에 배치하십시오. init 스크립트는 정적 초기자를 호출하면 DSL이로드된다.