我正在通过 curl 将“--data”传递给 GraphqQL API 端点。
我希望能够以“美化”形式传递数据,例如在 GraphiQL 浏览器中,
{
alpha {
param1
param2
}
}
Run Code Online (Sandbox Code Playgroud)
Atm,我在数据中的格式设置——即 re: 行返回——处理不当。
这种单行字符串形式有效,
curl \
-H 'content-type: application/json' \
-X POST /path/to/graphql/api/endpoint \
--data '{ "query":
"query { alpha {param1, param2} } "
}'
Run Code Online (Sandbox Code Playgroud)
这个“美化”版本没有
curl \
-H 'content-type: application/json' \
-X POST /path/to/graphql/api/endpoint \
--data '{ "query":
"query {
alpha {
param1
param2
}
} "
}'
Run Code Online (Sandbox Code Playgroud)
传递第二种形式的正确语法是什么?
我在猜测引用/转义的某种组合?
JSON 字符串中不允许使用换行符。(请参阅RFC 8259 \xc2\xa77,其中规定必须转义控制字符。)您可以将换行符转换为\\n
,但这有点笨拙:
curl \\\n -H \'content-type: application/json\' \\\n -X POST /path/to/graphql/api/endpoint \\\n --data \'{ "query":\n "query {\\n alpha {\\n param1\\n param2\\n }\\n} "\n }\'\n
Run Code Online (Sandbox Code Playgroud)\n由于 JSON 查询的结构非常好,因此使用专用工具来提交 GraphQL 查询似乎效果更好:GraphiQL的独立版本的独立版本是一个不错的默认版本,或者如果您有最喜欢的脚本语言和合理的 HTTP 客户端,那么它\用它写东西很容易。
\n 归档时间: |
|
查看次数: |
2542 次 |
最近记录: |