whileループでcURLを使用してjsonデータを公開する - bashシェル

whileループでcURLを使用してjsonデータを公開する - bashシェル

IDを抽出し、それを繰り返し、REST APIを実行するためにカールを使用してAPIに複数の要求を送信する必要があるJSON出力があります。たとえば、

JSON出力は次のとおりです。

{
    "glossary": [
        {
            "Title": "example glossary1",
            "id": 1,
            "description": "Hello Glossary1"
        },
        {
            "Title": "example glossary2",
            "id": 2,
            "description": "Hello Glossary2"
        },
        {
            "Title": "example glossary3",
            "id": 3,
            "description": "Hello Glossary3"
        },
        {
            "Title": "example glossary4",
            "id": 4,
            "description": "Hello Glossary4"
        }
    ]
}

シェルスクリプトは、このJSONファイルを繰り返し、IDを抽出し、繰り返し、CURLを使用してREST API呼び出しを実行する必要があります。

例は次のとおりです。

for (( i = 0 ; i < ${#id[@]} ; i++ ))
do 
     POST REST API 
done

ベストアンサー1

tmp.json というファイルで出力する場合は、以下を使用してください。ジャック行ごとにIDのリストを取得し、単純なforループを使用してAPIに投稿を公開します。

for i in `cat tmp.json  | jq .glossary[].id`; do 
   curl -X POST http://host/api/$i"
done

おすすめ記事