ฉันต้องการดึงคำตอบจำนวนมาก (100,000+) จาก API ผ่านคำขอ POST ซึ่งแต่ละรายการมีเพย์โหลดข้อมูล JSON ที่ไม่ซ้ำกัน แทนที่จะเรียกทีละครั้ง ฉันกำลังพยายามหาวิธีใช้ curl -z, parallel, xargs, a loop หรืออย่างอื่นเพื่อให้ง่ายและรวดเร็วขึ้น
ตัวอย่างของคำขอเดียวอยู่ด้านล่าง ฉันรู้ว่าฉันสามารถละเว้นส่วน POST ได้เนื่องจาก --data ระบุคำขอประเภทนี้ด้วย curl แล้ว
ขด - ขอ POST \
--url https://apiendpoint.someurl.com/ \
--ส่วนหัว 'ประเภทเนื้อหา: แอปพลิเคชัน/json' \
--data '{"key1":123,"key2":"1234","key3":12345}'
--data payload มี 3 พารามิเตอร์ดังนี้:
คีย์ 1 ซึ่งเป็นจำนวนเต็มที่มีค่าจากที่ใดก็ได้ 0-999
คีย์ 2 ซึ่งเป็นปี 4 หลัก (เช่น 2021)
คีย์ 3 ซึ่งเป็นจำนวนเต็มที่มีค่าจากที่ใดก็ได้ 0-99999
ฉันได้ลองสองสามอย่างเช่น:
ก = {123..130}
ข = {2020,2021}
ค = {1..1001}
ขด -Z --request POST \
--url https://apiendpoint.someurl.com/ \
--ส่วนหัว 'ประเภทเนื้อหา: แอปพลิเคชัน/json' \
--data "{\"key1\":"${a}\",\"key2\":"${b}\",\"key3\":\"${c}\"}"
และ
ใน {123..130}; ทำเพื่อ b ในปี {2020,2021}; ทำเพื่อ c ใน {1..1001}; ทำ \
curl -X POST -H 'ประเภทเนื้อหา: แอปพลิเคชัน/json'
-d '{"key1":"'$a'","key2":"'$b'","key3":"'$c'"}' https://apiendpoint.someurl.com/ \
-o "$a-$b-$c.json"; \
เสร็จแล้ว; เสร็จแล้ว; เสร็จแล้ว
แต่ไม่มีโชคที่จะรับพวกเขาเข้าทำงาน
มีวิธีการดึง --data payloads จากไฟล์ txt ไฟล์เดียวที่มีหนึ่ง payload ต่อบรรทัดหรือไม่?
ฉันยังต้องส่งออกคำตอบแต่ละรายการเป็นไฟล์เดียวโดยใช้หลักการตั้งชื่อ a-b-c.json
ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก ฉันเป็นสามเณรญาติและการเรียนรู้
ไม่เป็นไร