我正在gitlab-ci文件中编写脚本,而我正在使用的服务器是Linux来运行管道。
现在我要进行两个API调用,而第二个调用取决于第一个
例如
URL= you can take any HTTPS endpoint (i guess it really doesn't matter)
jsonResponse=$(curl -d $requestJson -X POST $FIRST_URL)
echo $jsonResponse
[{"result":"Success"}]
基于结果字段(成功/失败),我想使用curl进行另一个API调用。如下所示
if response[0].result=success then "curl -d $requestJson -X POST $SECOND_URL" else exit 1
注意,响应将在数组中。
我想进行两个REST API调用,而第二个REST调用取决于第一个响应
[您可以使用一些现有的JSON库(例如C中的jansson或C ++中的jsoncpp),并将它们与某些HTTP客户端库(例如libcurl)和/或HTTP服务器库(例如[C0 ])。
您可能对现有的C ++框架,例如libonion或Qt感兴趣。
您应该查看最近的语言实现,例如POCO或Go或Rust或Ocaml或SBCL。它们提供了有用的库(与HTTP和REST相关的客户端和服务器端)。
[您可能考虑使用脚本语言,例如Node.JS或Python或Guile或Lua或Perl等。它们还具有满足您需要的相关库。
我倾向于认为Ruby不是满足您需求的最佳选择(至少还要考虑GNU GNU bash)。
还请查看gawk和github,以了解与您的需求相关的gitlab实现。一旦在纸上指定了这些内容(可能对要实现的消息使用了open source表示法;也请阅读有关EBNF和SOAP的信息),实现起来就很容易。
请务必阅读JSONRPC,Advanced Linux Programming和syscalls(2)。
什么将验证字段的正确方法
首先,在纸上指定什么是有效字段。
还要写一些有效字段和无效字段的示例。然后考虑使用sockets(7)。还要study来启发类似于您需要的existing开源软件的源代码。
另请参见regex(7)。
您可能会做的是,将第一个API调用的输出保存到文件(api1-output.json),然后将其传递到下一个对应的作业,您可以从中读取该输出并根据其响应进行操作。