Here解释了我如何使用其REST API与Gremlin服务器进行交互。使用以下命令,我执行相当简单的100-1
脚本。
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"
}
答案 0 :(得分:3)
我创建了一个名为send.groovy
的文件,其中包含:
{
"gremlin": "x=1+1;x+3"
}
然后我通过curl发送它:
$ 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(即将换行符更改为&#34; \ n&#34;因为JSON不允许行分解)。
请注意,您可以使用Python之类的工具将文件内容转换为有效的JSON:
$ 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"}