Score:0

วิธีใช้คำขอ CURL POST แบบขนานสำหรับ API กับ JSON Payloads

ธง cn

ฉันต้องการดึงคำตอบจำนวนมาก (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

ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก ฉันเป็นสามเณรญาติและการเรียนรู้

ไม่เป็นไร

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา