2016-12-02 10 views
2

Here REST APIを使用してGremlin Serverと対話する方法について説明しています。次のコマンドで、私はかなり単純な100-1スクリプトを実行します。私が欲しいものGroovyスクリプトをファイルとしてGremlin Server REST APIに送信します。

curl -X POST -d "{\"gremlin\":\"100-1\"}" "http://localhost:8182" 

ではなく、インラインスクリプトを使用しての、script.groovy、発言でそれを定義することです。

GROOVY_LOAD_DATA_SCRIPT=$(<script.groovy) 
curl -X POST -d "{\"gremlin\":\"${GROOVY_LOAD_DATA_SCRIPT}\"}" "http://localhost:8182" 

しかし、すぐに、私は休憩を指揮ワンライナーを超えて移動を開始とおりです:私はそれが全体のスクリプトで変数を定義する。この場合のために働くことができます

{ 
    "message": "body could not be parsed" 
} 

答えて

3

私はsend.groovyという名前のファイルを作成しました。

次に、cur l:

$ curl -X POST --data-binary @send.groovy http://localhost:8182/gremlin 
{"requestId":"6c0e7f3a-a16c-4fc1-a636-d462dc02b832","status":{"message":"","code":200,"attributes":{}},"result":{"data":[5],"meta":{}}} 

スクリプト自体に複数行が必要な場合は、有効なJSON(つまり、 JSONが改行を許可しないので、改行を「\ n」に変更してください)。

あなたは有効なJSONにファイルの内容を有効にするPythonのようなツールを使用することができます注:

$ cat /tmp/foo 
println "Hello " + 'World!' 
1+2 

$ echo "{\"gremlin\":$(python -c 'import json, sys; print(json.dumps(sys.stdin.read()))' < /tmp/foo)}" 
{"gremlin":"println \"Hello \" + 'World!'\n1+2\n"} 
関連する問題