从linux的curl响应中检查json字段

问题描述 投票:-1回答:2

我正在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

注意,响应将在数组中。

linux gitlab-ci alpine
2个回答
0
投票

我想进行两个REST API调用,而第二个REST调用取决于第一个响应

请按照协议说明:所以HTTPS(或HTTP)和REST。阅读有关它们的更多信息。

[您可以使用一些现有的JSON库(例如C中的jansson或C ++中的jsoncpp),并将它们与某些HTTP客户端库(例如libcurl)和/或HTTP服务器库(例如[C0 ])。

您可能对现有的C ++框架,例如libonionQt感兴趣。

您应该查看最近的语言实现,例如POCOGoRustOcamlSBCL。它们提供了有用的库(与HTTP和REST相关的客户端和服务器端)。

[您可能考虑使用脚本语言,例如Node.JSPythonGuileLuaPerl等。它们还具有满足您需要的相关库。

阅读您要使用的编程语言实现和库的文档。

我倾向于认为Ruby不是满足您需求的最佳选择(至少还要考虑GNU GNU bash)。

还请查看gawkgithub,以了解与您的需求相关的gitlab实现。一旦在纸上指定了这些内容(可能对要实现的消息使用了open source表示法;也请阅读有关EBNFSOAP的信息),实现起来就很容易。

请务必阅读JSONRPCAdvanced Linux Programmingsyscalls(2)

什么将验证字段的正确方法

首先,在纸上指定什么是有效字段。

还要写一些有效字段和无效字段的示例。然后考虑使用sockets(7)。还要study来启发类似于您需要的existing开源软件的源代码。

另请参见regex(7)


0
投票

您可能会做的是,将第一个API调用的输出保存到文件(api1-output.json),然后将其传递到下一个对应的作业,您可以从中读取该输出并根据其响应进行操作。

© www.soinside.com 2019 - 2024. All rights reserved.