Azure-devops rest api - การแบ่งหน้าและขีด จำกัด อัตรา
ฉันกำลังพยายามดึงข้อมูลเอนทิตี Azure-Devops (ทีมโครงการที่เก็บข้อมูลสมาชิก ฯลฯ ... ) และประมวลผลข้อมูลนั้นในเครื่องฉันไม่พบเอกสารใด ๆ เกี่ยวกับการ จำกัด อัตราและการแบ่งหน้าใครมีประสบการณ์เกี่ยวกับเรื่องนี้บ้างไหม
มีเอกสารสำหรับการแบ่งหน้าบน API ของสมาชิก:
https://docs.microsoft.com/en-us/rest/api/azure/devops/memberentitlementmanagement/members/get?view=azure-devops-rest-6.0
แต่นั่นเป็นเพียงเรื่องเดียวฉันไม่พบเอกสารประกอบสำหรับเอนทิตีคอมไพล์ใด ๆ
เช่นที่เก็บข้อมูล
https://docs.microsoft.com/en-us/rest/api/azure/devops/git/repositories/list?view=azure-devops-rest-6.0
หากมีใครสามารถชี้ให้ฉันดูเอกสารที่ถูกต้องหรือให้ความกระจ่างเกี่ยวกับเรื่องเหล่านี้ได้ก็จะดีมาก
ขอบคุณ.
คำตอบ
ฉันไม่พบเอกสารใด ๆ เกี่ยวกับการ จำกัด อัตราและการแบ่งหน้ามีใครเคยมีประสบการณ์บ้างไหม
มีเอกสารเกี่ยวกับขีด จำกัด บริการและขีด จำกัด อัตราซึ่งแนะนำขีด จำกัด บริการและขีด จำกัด อัตราที่ทุกโครงการและองค์กรต้องปฏิบัติ
สำหรับการ จำกัด อัตรา:
Azure DevOps Services เช่นเดียวกับโซลูชัน Software-as-a-Service จำนวนมากใช้การเช่าหลายแบบเพื่อลดต้นทุนและเพิ่มความสามารถในการปรับขนาดและประสิทธิภาพ ซึ่งทำให้ผู้ใช้เสี่ยงต่อปัญหาด้านประสิทธิภาพและแม้กระทั่งการหยุดทำงานเมื่อผู้ใช้ทรัพยากรที่ใช้ร่วมกันคนอื่นมีปริมาณการใช้ที่เพิ่มขึ้นอย่างรวดเร็ว เพื่อต่อสู้กับปัญหาเหล่านี้ Azure DevOps Services จะ จำกัด ทรัพยากรที่บุคคลสามารถใช้และจำนวนคำขอที่สามารถทำได้สำหรับคำสั่งบางคำสั่ง เมื่อเกินขีด จำกัด เหล่านี้คำขอที่ตามมาอาจล่าช้าหรือถูกบล็อก
คุณสามารถดูเอกสารการ จำกัด อัตราสำหรับรายละเอียด
สำหรับการแบ่งหน้าโดยทั่วไป REST API จะมีการตอบสนองแบบแบ่งหน้าและโดยปกติ ADO REST API จะมีขีด จำกัด 100/200 (ขึ้นอยู่กับ API ใด) ต่อหน้าในการตอบสนองแต่ละครั้ง วิธีที่จะดึงข้อมูลหน้าต่อไปคือการดูส่วนหัวของการตอบสนองและการใช้งานนี้สำหรับพารามิเตอร์คำขอถัดไปเป็นx-ms-continuationtokencontinuationToken
แต่ Microsoft ไม่ได้จัดทำเอกสารนี้ไว้เป็นอย่างดี - สิ่งนี้ควรได้รับการกล่าวถึงในทุกการเรียก API ที่รองรับโทเค็นความต่อเนื่อง :
สร้าง - รายการ:
GET https://dev.azure.com/{organization}/{project}/_apis/build/builds?definitions={definitions}&continuationToken={continuationToken}&maxBuildsPerDefinition={maxBuildsPerDefinition}&deletedFilter={deletedFilter}&queryOrder={queryOrder}&branchName={branchName}&buildIds={buildIds}&repositoryId={repositoryId}&repositoryType={repositoryType}&api-version=5.1
หากฉันใช้ REST API ดังกล่าวข้างต้นด้วยการ$top=50เป็นไปตามคาดที่ฉันได้รับ 50 หลังและส่วนหัวที่เรียกว่า " x-ms-continuationtoken" จากนั้นเราจะได้ห่วงการส่งออกผลด้วยcontinuationtoken:
คุณสามารถตรวจสอบหัวข้อที่คล้ายกันนี้เพื่อดูรายละเอียดเพิ่มเติม
ฉันคิดว่าสำหรับ apis ส่วนใหญ่คุณมีพารามิเตอร์การค้นหาเป็น $top/$ข้ามคุณสามารถใช้พารามิเตอร์เหล่านี้เพื่อทำการแบ่งหน้า สมมติว่าการรันเริ่มต้นให้เอกสาร 200 ฉบับในการตอบกลับ สำหรับการรันครั้งต่อไปให้ข้าม 200 เหล่านั้นโดยระบุ $ skip = 200 ในพารามิเตอร์เคียวรีของคำขอเพื่อรับ 200 รายการถัดไป คุณสามารถทำซ้ำได้จนกว่าแอตทริบิวต์ count ของการตอบกลับจะกลายเป็น 0
สำหรับ apis เหล่านั้นคุณไม่มีพารามิเตอร์เหล่านี้คุณสามารถใช้โทเค็นต่อเนื่องตามที่ Leo Liu-MSFT กล่าวไว้
ดูเหมือนว่าคุณสามารถส่งผ่าน$topและcontinuationTokenแสดงรายการ Azure Git Refs ได้
เอกสารอยู่ที่นี่:
https://docs.microsoft.com/en-us/rest/api/azure/devops/git/refs/list?view=azure-devops-rest-6.0