我正在使用curl创建几个分类。我已经为许多分类编写了json,它们位于一个文件夹中。我想一次创建所有分类。但是使用curl我一次只能创建一个。我怎么能在一个请求中制作它们?
curl -u admin:admin -H "Content-Type: application/json" -X POST -d @pii.json http://127.0.0.1:21000/api/atlas/v2/types/typedefs
-d的curl手册说“也可以指定多个文件”。我怎样才能做到这一点?我所有的尝试都失败了。
我需要一个bash脚本吗?如果是这样,你能帮助我 - 我不是一个程序员而且我在没有榜样的情况下挣扎!
提前致谢。
我发现以下内容最终有效:
<fileToUpload.dat xargs -I % curl -X POST -T "{%}" -u admin:admin -H "Content-Type: application/json" http://127.0.0.1:21000/api/atlas/v2/types/typedefs
其中fileToUpload.dat包含.json文件的列表。
这似乎对Daniel的答案起作用,可能是由于文件的内容。希望如果Daniel的解决方案对他们不起作用,这对其他人有用。
您可能不希望将多个-d
与JSON数据一起使用,因为curl将多个&
连接在一起。如-d / - 数据的手册页中所述:
如果在同一命令行中多次使用这些选项中的任何一个,则指定的数据将与分离&-symbol合并在一起。因此,使用'-d name = daniel -d skill = lousy'会生成一个看起来像'name = daniel&skill = lousy'的帖子块。
但是,您可以轻松方便地在stdin上传递几个文件,让curl一次性使用它们:
cat a.json b.json c.json | curl -d@- -u admin:admin -H "Content-Type: application/json" http://127.0.0.1:21000/api/atlas/v2/types/typedefs
(请注意,-X POST
在使用-d的命令行中没有位置)