การเชื่อมต่อ API ซื้อขาย OpenSea มีหน้าที่หลายอย่างที่แตกต่างกัน ได้แก่ อ่านข้อมูลตลาด ทำความเข้าใจคำสั่ง เตรียมการกระทำที่รองรับ และกระทบยอดสิ่งที่เกิดขึ้นจริง คีย์ API ให้สิทธิ์เข้าถึงบริการ แต่ไม่ได้ทำให้ข้อมูลตอบกลับทุกชุดกลายเป็นธุรกรรมที่ได้รับอนุญาต หรือทำให้ NFT ทุกชิ้นที่มองเห็นซื้อขายได้ผ่านเส้นทางสากลเส้นทางเดียว
การพัฒนาที่มีประโยชน์เริ่มจากแยกหน้าที่เหล่านี้ แอปควรทราบว่าข้อมูลตอบกลับเป็นข้อสังเกต ข้อมูลเตรียมธุรกรรมที่ยังไม่ลงนาม การตอบรับคำสั่ง หรือหลักฐานการดำเนินการ การสับสนระหว่างประเภทเหล่านี้อาจทำให้เกิดภาระซ้ำ การตัดสินใจจากข้อมูลเก่า และบันทึกทางการเงินที่อิงเหตุการณ์ซึ่งไม่เคยเสร็จสมบูรณ์
คู่มือนี้อธิบายสถาปัตยกรรมและคำถามสำหรับประเมินโดยใช้ตัวอย่างเชิงแนวคิด รายละเอียดที่อ้างถึงเอกสารได้รับการตรวจเมื่อวันที่ 24 กันยายน 2026 คู่มือนี้ไม่ได้ให้ข้อมูลรับรอง ดำเนินธุรกรรม หรือนำเสนอชุดโค้ดทั่วไปว่าเป็นระบบซื้อขายพร้อมใช้งานจริงที่ครบถ้วน
กำหนดความสามารถของ API ที่ต้องการ
เริ่มจากการกระทำที่แอปต้องรองรับ การวิจัยคอลเลกชันต้องใช้ปลายทางและบันทึกต่างจากการสร้างข้อเสนอซื้อ การดำเนินการตามรายการขาย หรือการกระทบยอดพอร์ต การเรียกข้อมูลกำกับสำเร็จไม่ได้ยืนยันว่าส่วนอื่นของวงจรซื้อขายถูกพัฒนาครบแล้ว
แยกความสามารถที่ต้องการออกเป็นรายการ ได้แก่ ระบุคอลเลกชันและชิ้นงาน ตรวจคำสั่งที่เกี่ยวข้อง สร้างการกระทำที่อนุญาต ติดตามภาระ และตรวจผลลัพธ์ จากนั้นเชื่อมแต่ละความสามารถกับเอกสารทางการฉบับปัจจุบัน รวมถึงเครือข่ายหรือมาตรฐานสินทรัพย์ที่ความสามารถนั้นรองรับ
รายการความสามารถควรระบุข้อจำกัดด้วย แหล่งข้อมูลอาจแสดงสินทรัพย์โดยไม่รองรับการซื้อผ่านเส้นทางที่เลือก ปลายทางสำหรับดำเนินการอาจใช้กับคำสั่ง EVM ขณะที่อีกเชนต้องจัดการต่างออกไป
การระบุความแตกต่างเหล่านี้อย่างชัดเจนทำให้แผนเชื่อมต่อแม่นยำกว่าการมีตัวบ่งชี้กว้าง ๆ เพียงว่าเชื่อมต่อ API แล้ว ทุกการกระทำที่รองรับควรมีหลักฐานยืนยันพฤติกรรมที่ถูกต้องของตนเอง
การยืนยันตัวตนกับ API ของ OpenSea ไม่ใช่การลงนามของกระเป๋า
การยืนยันตัวตนกับ API ซื้อขาย OpenSea ใช้ระบุสิทธิ์เข้าถึงบริการ ส่วนการลงนามของกระเป๋าให้อำนาจแก่ข้อความหรือธุรกรรมภายใต้การควบคุมของบัญชี ทั้งสองอย่างใช้ข้อมูลรับรองและขอบเขตความเชื่อถือต่างกัน แม้แอปจะใช้ทั้งคู่ในกระบวนการเดียวกัน
เอกสารคีย์ API ทางการอธิบายการเข้าถึงด้วยคีย์และส่วนหัวคำขอ X-API-KEY คีย์บริการไม่ควรปรากฏในชุดโค้ดที่เผยแพร่สาธารณะ ภาพหน้าจอ หรือข้อมูลวินิจฉัยทั่วไป ระบบเชื่อมต่อควรจัดการการหมดอายุหรือการเปลี่ยนคีย์ได้โดยไม่เปิดเผยค่าคีย์
ไม่ควรคัดลอกข้อมูลลับสำหรับลงนามของกระเป๋าลงในส่วนหัว API หรือส่งไปยังปลายทางข้อมูลตลาด การกระทำที่เตรียมไว้สามารถได้รับการตรวจและลงนามผ่านกระบวนการภายในเครื่องที่ควบคุมได้ หรือผ่านกระบวนการลงนามอื่นที่แยกออกอย่างเหมาะสม
การออกแบบที่มีประโยชน์สามารถทำงานในโหมดสังเกตอย่างเดียวโดยไม่มีอำนาจซื้อขาย ทำให้ประเมินความครอบคลุมข้อมูลและการจัดการคำขอได้ก่อนเปิดให้บัญชีกระทำการใด
ใช้เอกสารปัจจุบันเป็นข้อกำหนดของส่วนเชื่อมต่อ
ชื่อปลายทาง รูปแบบข้อมูลตอบกลับ และการดำเนินการที่รองรับอาจเปลี่ยนได้ อ่านเอกสารอ้างอิงที่ตรงกับการดำเนินการนั้นโดยตรง แทนการคัดลอกตัวอย่างเก่าเพียงเพราะมีชื่อแบรนด์ที่คุ้นเคย เส้นทางที่ใช้กับเชนหรือประเภทคำสั่งหนึ่งอาจไม่ครอบคลุมอีกประเภท
เก็บฉบับหรือวันที่ของเอกสารที่ใช้เป็นพื้นฐานของสมมติฐานสำคัญ การทดสอบควรแสดงให้เห็นเมื่อข้อมูลตอบกลับไม่ตรงกับสมมติฐานนั้นอีกต่อไป ช่องข้อมูลที่ไม่รู้จักอาจไม่ก่อปัญหา แต่ตัวระบุสินทรัพย์ที่ขาดไปหรือรูปแบบธุรกรรมที่เปลี่ยนไปอาจทำให้การกระทำใช้ไม่ได้
อย่าเดาค่าที่ขาดอย่างเงียบ ๆ หากข้อมูลตอบกลับไม่มีข้อมูลที่จำเป็นสำหรับระบุการชำระเงิน ผู้รับ หรือคุณสมบัติที่เข้าเกณฑ์ แอปควรรายงานว่าข้อเสนอการกระทำยังไม่ครบ แทนการเติมช่องว่างด้วยค่าเริ่มต้นที่ให้อำนาจใช้เงิน
คู่มือการซื้อขาย NFT ผ่านสัญญาอัจฉริยะ อธิบายว่าทำไมความหมายของธุรกรรมจึงสำคัญกว่า JSON ที่มีรูปแบบถูกต้อง ข้อมูลตอบกลับที่แปลรูปแบบได้แล้วก็ยังต้องตรงกับการกระทำทางเศรษฐกิจที่ตั้งใจไว้
สร้างบันทึกตัวระบุที่คงที่
เก็บเครือข่าย ตัวระบุคอลเลกชัน ตัวระบุสินทรัพย์ที่เกี่ยวข้อง ปริมาณโทเคนหรือหน่วยของรุ่นที่ออก และข้อมูลอ้างอิงคำสั่ง ช่องข้อมูลเหล่านี้เชื่อมข้อสังเกตเข้ากับธุรกรรมเฉพาะและหลักฐานความเป็นเจ้าของในภายหลัง
slug ของคอลเลกชันมีประโยชน์ภายใน API ของตลาด แต่ไม่ควรใช้แทนตัวระบุบนเชนที่เส้นทางดำเนินการต้องใช้ ชื่อแสดงและสัญลักษณ์เปลี่ยนได้หรือถูกเลียนแบบได้ ระบบเชื่อมต่อต้องมีตัวระบุที่คงที่และเหมาะกับแต่ละชั้น
แยกแฮชคำสั่งออกจากตัวระบุธุรกรรมด้วย คำสั่งอาจถูกสังเกตหรืออัปเดตก่อนมีธุรกรรม และธุรกรรมเดียวอาจเกี่ยวข้องกับหลายเหตุการณ์ การใช้ช่อง ID ทั่วไปเพียงช่องเดียวทำให้ใช้ผิดได้ง่าย
แบบจำลองตัวระบุนี้ช่วยให้ตัดข้อมูลซ้ำและกู้คืนได้ แอปสามารถจำแนกหลักฐานที่ส่งซ้ำของภาระเดียวกัน โดยไม่ถือว่าข้อมูลตอบกลับทุกครั้งเป็นโอกาสซื้อขายใหม่หรือเป็นสินทรัพย์ที่ถือเพิ่ม
การแบ่งหน้าข้อมูลของ API ซื้อขาย OpenSea ต้องติดตามความครอบคลุม
การแบ่งหน้าข้อมูลของ API ซื้อขาย OpenSea ควรรักษาขอบเขตคำค้นและสถานะสำหรับเรียกหน้าถัดไปไว้ ข้อมูลตอบกลับหนึ่งหน้าอาจไม่ใช่รายการขายทั้งหมด จำนวนผลลัพธ์ที่น้อยอาจหมายถึงมีบันทึกอยู่เพียงเล็กน้อย แต่ก็อาจหมายถึงแอปหยุดก่อนเรียกหน้าที่เหลือครบเช่นกัน
เอกสารอ้างอิงรายการขายของคอลเลกชัน ฉบับปัจจุบันอธิบายการแบ่งหน้าโดยใช้จำนวนรายการสูงสุดต่อหน้าและพารามิเตอร์สำหรับเรียกหน้าต่อไป ใช้กลไกเรียกหน้าต่อไปตามที่เอกสารของปลายทางนั้นระบุ แทนการสมมติวิธีเลื่อนตำแหน่งข้อมูลขึ้นเอง
บันทึกว่าการเรียกข้อมูลครอบคลุมคอลเลกชัน ตัวกรอง และช่วงเวลาสังเกตใด หากชุดรายการขายเปลี่ยนระหว่างเรียกแต่ละหน้า ให้ตัดข้อมูลซ้ำโดยใช้ตัวระบุที่คงที่ และยอมรับว่าผลลัพธ์อาจไม่ได้แทนภาพข้อมูลที่เกิดขึ้นพร้อมกันอย่างสมบูรณ์
กระบวนการเรียกข้อมูลที่ใช้งานได้จริงยังต้องมีกฎหยุด งบจำนวนคำขอ และสถานะที่ระบุว่าข้อมูลยังครอบคลุมไม่ครบ การสแกนที่ถูกขัดจังหวะไม่ควรถูกนำเสนอเป็นหลักฐานว่าคำสั่งทุกรายการที่ไม่ได้ปรากฏในผลลัพธ์ไม่มีอยู่ในตลาด
แยกข้อมูลตอบกลับดิบออกจากบันทึกที่ปรับให้อยู่ในรูปแบบเดียวกัน
การปรับข้อมูลให้อยู่ในรูปแบบเดียวกันช่วยให้ใช้ข้อมูลตอบกลับต่างชนิดได้ง่ายขึ้น แต่ต้องไม่ลบความหมายของข้อมูล เก็บยอดเงินในสกุลเดิม ปริมาณ เวลาจากแหล่งข้อมูล และตัวระบุคำสั่งไว้ควบคู่กับช่องข้อมูลที่กลยุทธ์ใช้
ตัวอย่างเช่น มูลค่าการชำระที่แสดงเป็นหน่วยย่อยที่สุดของโทเคนต้องตีความตามจำนวนตำแหน่งทศนิยมจริงของโทเคนนั้น การแปลงผ่านตัวเลขทศนิยมแบบลอยตัวเพื่อแสดงผลเร็วเกินไปอาจทำให้สูญเสียความแม่นยำ การจัดรูปแบบเพื่อแสดงผลกับการคำนวณธุรกรรมมีจุดประสงค์ต่างกัน
ช่องราคาที่ปรับรูปแบบแล้วควรระบุด้วยว่าเป็นราคาเสนอขาย ข้อเสนอซื้อ ราคาขายที่เกิดขึ้นแล้ว หรือค่าประมาณ การรวมข้อสังเกตเหล่านี้เป็นตัวเลขเดียวทำให้การคำนวณภายหลังง่ายขึ้น แต่แลกกับความถูกต้องที่ลดลง
เก็บบริบทจากแหล่งข้อมูลให้เพียงพอสำหรับตรวจสอบความคลาดเคลื่อนโดยไม่เก็บข้อมูลลับ การอ้างอิงข้อมูลตอบกลับที่ปกปิดข้อมูลอ่อนไหวแล้วและช่องข้อมูลทางเศรษฐกิจที่ตรวจสอบแล้วช่วยแก้ข้อผิดพลาดได้ โดยไม่ต้องเก็บบันทึกคำขอทั้งหมดที่มีข้อมูลรับรอง
ออกแบบให้เคารพขีดจำกัดคำขอ
ระบบเชื่อมต่อต้องจำกัดอัตราคำขอ ใช้แคช และเว้นระยะก่อนลองใหม่ การถูกจำกัดอัตราไม่ใช่เหตุการณ์พิเศษที่ทำให้ควรวนส่งคำขอซ้ำทันที การส่งคำขอเดิมที่ถูกปฏิเสธซ้ำอาจทำให้กู้คืนได้ช้าลงและใช้ทรัพยากรโดยไม่ช่วยให้ข้อมูลสดใหม่ขึ้น
เอกสารคีย์ API ของ OpenSea ฉบับปัจจุบันอธิบายส่วนหัวข้อมูลตอบกลับสำหรับขีดจำกัดและเวลาที่ควรลองใหม่ รวมถึงขีดจำกัดระดับบัญชีที่ใช้ร่วมกันระหว่างคีย์ ใช้คำแนะนำปัจจุบันที่ระบบส่งกลับมา แทนการฝังค่าอัตรารับส่งที่สมมติว่าใช้ได้ทั่วไป หรือสร้างคีย์เพิ่มเพื่อหลบขีดจำกัด
แยกข้อมูลที่เปลี่ยนบ่อยออกจากข้อมูลกำกับที่เก็บในแคชได้นานกว่า นโยบายรีเฟรชควรสอดคล้องกับวิธีใช้ข้อมูล คำอธิบายคอลเลกชันกับคำสั่งที่กำลังจะดำเนินการไม่จำเป็นต้องใช้กฎความสดใหม่เดียวกัน
วัดความต้องการส่งคำขอก่อนเพิ่มความครอบคลุม แอปที่ติดตามคอลเลกชันจำนวนน้อยได้อย่างเชื่อถือได้อาจมีประโยชน์กว่าแอปที่อ้างว่าครอบคลุมทุกอย่าง แต่ต้องทำงานกับข้อมูลตอบกลับที่ไม่ครบหรือล้าสมัยอยู่ตลอด
ตีความสตรีมว่าเป็นข้อสังเกต ไม่ใช่บัญชีรายการที่ครบถ้วน
เอกสารอ้างอิง Stream API อธิบายเหตุการณ์ของตลาดที่ส่งผ่าน WebSocket และระบุด้วยว่าเหตุการณ์อาจมาถึงไม่ตามลำดับ รวมถึงข้อความที่พลาดไประหว่างเกิดข้อผิดพลาดในการเชื่อมต่อจะไม่ถูกส่งย้อนหลัง ข้อจำกัดเหล่านี้มีผลต่อวิธีกู้คืนแบบจำลองสถานะภายในระบบ
ใช้เวลาของเหตุการณ์และตัวระบุที่คงที่เพื่อป้องกันไม่ให้ข้อสังเกตที่มาช้าหรือซ้ำทำให้บันทึกปัจจุบันผิดเพี้ยน ลำดับที่รับข้อมูลไม่ได้ตรงกับลำดับเหตุการณ์ในตลาดเสมอไป เมื่อเชื่อมต่อใหม่ ระบบควรกระทบยอดตามความเหมาะสม แทนการสมมติว่าไม่มีข้อมูลตกหล่น
ภาพข้อมูลปัจจุบันอาจช่วยคืนข้อมูลคำสั่งหรือสินทรัพย์ที่ถืออยู่ในขณะนี้ได้ โดยไม่สามารถสร้างเหตุการณ์ทั้งหมดระหว่างช่วงข้อมูลขาดหายขึ้นใหม่ แอปควรแยกการกู้คืนเพื่อให้ทำงานต่อได้ออกจากการมีข้อมูลย้อนหลังที่ครอบคลุมครบถ้วน
ความแตกต่างนี้สำคัญต่อการวิเคราะห์ด้วย แนวโน้มที่คำนวณคร่อมช่วงเวลาซึ่งไม่ได้สังเกตข้อมูลต้องมีคำเตือนเรื่องความครอบคลุม การแทนเหตุการณ์ที่หายไปด้วยค่าศูนย์อาจสร้างสัญญาณตลาดที่ผิด
ข้อมูลดำเนินการตามคำสั่งจาก API ซื้อขาย OpenSea ยังเป็นขั้นเตรียมการ
ต้องตีความข้อมูลตอบกลับสำหรับดำเนินการตามคำสั่งจาก API ซื้อขาย OpenSea อย่างรอบคอบ ปลายทางสำหรับเตรียมดำเนินการตามรายการขาย ฉบับปัจจุบันส่งข้อมูลที่ต้องใช้เพื่อดำเนินการตามรายการขายที่รองรับบนเชน การได้รับข้อมูลนี้ไม่ได้โอน NFT ด้วยตัวมันเอง และไม่ได้พิสูจน์ว่าบัญชีชำระเงินให้ผู้ขายแล้ว
ตรวจเชน โปรโตคอล ผู้รับ ปริมาณ การชำระเงิน และค่าธรรมเนียมที่จำเป็นเทียบกับข้อเสนอการกระทำที่ได้รับอนุมัติ เอกสารอ้างอิงปัจจุบันของปลายทางระบุข้อจำกัดเกี่ยวกับ EVM และ Seaport ที่รองรับ ผู้เรียกใช้จึงไม่ควรนำรูปแบบนั้นไปใช้เป็นรูปแบบธุรกรรม Solana ที่ใช้ได้ทั่วไป
การปฏิเสธค่าธรรมเนียมผู้สร้างส่วนที่เลือกจ่ายได้ไม่ได้ทำให้ค่าธรรมเนียมผู้สร้างที่บังคับจ่ายหายไป การกระทำสุดท้ายต้องเป็นไปตามเงื่อนไขจริงของคำสั่งและเส้นทาง แทนการถือว่าพารามิเตอร์อำนวยความสะดวกให้อำนาจข้ามสิ่งตอบแทนที่ต้องชำระ
หลังเตรียมข้อมูลแล้ว กระบวนการยังต้องผ่านการลงนามที่ควบคุมได้ การส่งธุรกรรม และการยืนยัน แต่ละขั้นควรรักษาเจตนาเดิมไว้ เพื่อให้บัญชีตรวจพบการเปลี่ยนแปลงที่ไม่คาดหมายก่อนผูกพันเงินทุน
รักษาความแตกต่างระหว่างบทบาทของกระเป๋า
ในบางกระบวนการที่รองรับ บัญชีที่ชำระเงิน บัญชีที่รับ NFT และบัญชีที่ลงนามอนุญาตอาจมีบทบาทต่างกัน แอปควรระบุบทบาทที่ตั้งใจใช้ให้ชัดเจน แทนการสมมติว่าช่องที่อยู่ทุกช่องใช้แทนกันได้
การเปลี่ยนผู้รับมีนัยสำคัญทางเศรษฐกิจ แม้ธุรกรรมยังถูกต้องตามรูปแบบก็ตาม เปรียบเทียบผู้รับกับปลายทางที่ได้รับอนุมัติ เช่นเดียวกับกรณีที่โทเคนชำระเงินหรือที่อยู่ผู้มีสิทธิ์ใช้จ่ายต่างจากที่ผู้ใช้คาดไว้
คู่มือวิธีใช้ WETH ซื้อขายบน OpenSea อธิบายยอดโทเคนชำระเงินและยอดสินทรัพย์สำหรับค่าธรรมเนียมเครือข่ายในกระบวนการข้อเสนอซื้อบน Ethereum การตรวจบัญชีของระบบเชื่อมต่อควรสะท้อนความแตกต่างเหล่านั้นด้วย
ข้อมูลตอบกลับจากบริการไม่ควรได้รับอำนาจแบบครอบคลุมให้เลือกปลายทางที่ไม่คาดหมาย ผู้เรียกใช้ยังคงรับผิดชอบประเมินว่าการกระทำที่เตรียมไว้ตรงกับการซื้อขายและขีดจำกัดที่ผู้ใช้ตั้งใจไว้หรือไม่
คำนึงถึงการเปลี่ยนชิ้นงานในการกวาดซื้อและลำดับการกระทำ
เอกสารอ้างอิงการกวาดซื้อคอลเลกชัน ฉบับปัจจุบันอธิบายการดำเนินการที่ใช้ได้เฉพาะ EVM และส่งรายการธุรกรรมที่เรียงลำดับกลับมา อีกทั้งระบุว่าเมื่อชิ้นงานที่ขอซื้อไม่พร้อมใช้งาน ระบบจะเปลี่ยนเป็นรายการขายที่มีราคาถูกถัดไปโดยอัตโนมัติ ซึ่งเปิดใช้เป็นค่าเริ่มต้น
พฤติกรรมนี้ทำให้นโยบายเปลี่ยนชิ้นงานมีความสำคัญ ชิ้นงานที่นำมาแทนอาจอยู่ในคอลเลกชันตามที่ระบุ แต่ไม่ผ่านเหตุผลการลงทุนที่อิงคุณลักษณะเดิมหรือเงื่อนไขที่ทำให้ขายออกได้ ตรวจชุดสินทรัพย์ที่ได้จากการเตรียมการและต้นทุนรวมอีกครั้ง ก่อนอนุญาตให้ลำดับการกระทำที่เตรียมไว้ใช้การอนุมัติเดิม
รายการธุรกรรมที่เรียงลำดับไม่ได้รับประกันโดยทั่วไปว่าตะกร้าทั้งหมดจะสำเร็จพร้อมกันแบบแบ่งแยกไม่ได้ แอปต้องทราบผลจริงของแต่ละการกระทำและมีนโยบายสำหรับกรณีที่สำเร็จเพียงบางส่วน
บันทึกที่มีประโยชน์จะแยกชิ้นงานที่ขอซื้อ ชิ้นงานในข้อเสนอสุดท้าย และชิ้นงานที่ได้รับจริงออกจากกัน วิธีนี้ช่วยอธิบายได้ว่าทำไมสินทรัพย์คงเหลือที่ได้จึงต่างจากหน้าจอเริ่มต้น โดยไม่แต่งเติมว่ามีการซื้อสำเร็จทั้งที่ไม่เคยเกิดขึ้น
แยกเส้นทาง EVM ออกจาก Solana
OpenSea อาจแสดงสินทรัพย์จากหลายเครือข่าย ขณะที่แต่ละปลายทางรองรับการดำเนินการที่แคบกว่านั้น การที่คอลเลกชันปรากฏในข้อมูลตอบกลับไม่ได้พิสูจน์ว่าปลายทางดำเนินการทุกแห่งยอมรับเชนหรือมาตรฐานของคอลเลกชันนั้น
บทความบอตซื้อขาย Solana Web3 พิจารณาข้อกำหนดด้านบัญชีและธุรกรรมที่เฉพาะต่อเชน ควรตรวจวิธีจัดเงินสำหรับข้อเสนอซื้อของ Solana มาตรฐาน NFT ที่รองรับ และหลักฐานยืนยันตามเงื่อนไขของระบบนั้นเอง แทนการแปลงแนวคิด EVM Seaport มาใช้ตามตัวอักษร
ประกาศความสามารถในระดับการกระทำ เช่น ดูข้อมูลกำกับ ตรวจคำสั่ง เตรียมซื้อ สร้างข้อเสนอซื้อ หรือยกเลิกภาระ เส้นทางหนึ่งอาจรองรับการดำเนินการบางอย่างในรายการนี้ แต่ไม่รองรับอย่างอื่น
กรณีที่ไม่รองรับควรถูกระบุอย่างชัดเจนในส่วนติดต่อและการทดสอบ การเดารูปแบบธุรกรรมเพียงเพราะสินทรัพย์ใช้ชื่อคอลเลกชันที่คุ้นเคยไม่ใช่วิธีขยายความครอบคลุมที่เชื่อถือได้
แยกการลองอ่านข้อมูลใหม่ออกจากการลองกระทำที่มีผลทางเศรษฐกิจใหม่
การอ่านข้อมูลซ้ำหลังเกิดข้อผิดพลาดชั่วคราวต่างจากการส่งคำสั่งหรือธุรกรรมอีกครั้ง ระบบเชื่อมต่อควรจำแนกการดำเนินการตามผลทางเศรษฐกิจที่อาจเกิดขึ้น และเก็บตัวระบุให้เพียงพอสำหรับกู้คืนผลลัพธ์ที่ยังไม่แน่ชัด
เมื่อคำขอส่งคำสั่งหมดเวลารอ ผู้เรียกใช้อาจยังไม่ทราบว่าบริการยอมรับคำสั่งแล้วหรือไม่ หลังส่งธุรกรรมเข้าเชนก็อาจหมดเวลารอได้ แม้ธุรกรรมนั้นจะดำเนินการสำเร็จในภายหลัง การสร้างการกระทำใหม่ที่เป็นอิสระจากครั้งเดิมทันทีอาจทำให้มีความเสี่ยงซ้ำซ้อน
หากผลลัพธ์ยังไม่แน่ชัด ให้เรียกข้อมูลและกระทบยอดความพยายามครั้งเดิมผ่านหลักฐานที่ระบบรองรับ คงยอดงบที่กันไว้สำหรับภาระนั้นจนกว่าจะทราบข้อยุติ การไม่ได้รับคำตอบทันทีไม่ใช่หลักฐานว่าไม่มีอะไรเกิดขึ้น
กฎนี้ควรปรากฏในการทดสอบและข้อความถึงผู้ปฏิบัติงาน แอปสามารถอธิบายว่ากำลังตรวจสอบความพยายามครั้งก่อน แทนการแสดงข้อผิดพลาดทั่วไปที่ชวนให้ผู้ใช้กดปุ่มซื้อซ้ำหลายครั้ง
ตีความข้อผิดพลาดตามการดำเนินการนั้น
การยืนยันตัวตนล้มเหลว พารามิเตอร์ไม่ถูกต้อง เชนไม่รองรับ ไม่พบคำสั่ง ข้อมูลขัดแย้ง และการถูกจำกัดอัตรา ต้องใช้การตอบสนองต่างกัน หากถือว่าสถานะที่ไม่สำเร็จทุกแบบเป็นปัญหาเซิร์ฟเวอร์ชั่วคราว ระบบอาจวนลองคำขอที่ไม่มีทางถูกต้องได้ไม่สิ้นสุด
ตรวจข้อมูลข้อผิดพลาดที่มีโครงสร้างโดยไม่เปิดเผยข้อมูลลับในบันทึก ข้อความที่มีประโยชน์สามารถระบุการดำเนินการที่ล้มเหลวและขั้นต่อไปที่ปลอดภัย โดยไม่แสดงคีย์ API ข้อมูลสำหรับลงนาม และรายละเอียดบัญชีที่ไม่จำเป็น
แยกข้อผิดพลาดของ API ออกจากความล้มเหลวบนเชนด้วย คำขอเตรียมการอาจล้มเหลวก่อนมีธุรกรรม ขณะที่การกระทำที่ส่งไปแล้วอาจมีต้นทุนแม้ดำเนินการไม่สำเร็จ การบันทึกผลทางการเงินของบัญชีขึ้นอยู่กับสิ่งที่เกิดขึ้นจริง
ระบบเชื่อมต่อที่ทนต่อปัญหาจะเก็บกรณีที่ยังหาข้อยุติไม่ได้ไว้ตรวจสอบ ไม่ควรแต่งเติมว่าเสร็จสำเร็จแล้ว หรือว่าล้มเหลวโดยไม่มีต้นทุน เพียงเพราะตัวแปลข้อผิดพลาดไม่มีหมวดที่แม่นยำกว่านั้น
กระทบยอดความเป็นเจ้าของ คำสั่ง และการชำระเงินร่วมกัน
บันทึกการซื้อขายจะครบถ้วนก็ต่อเมื่อการเคลื่อนย้ายสินทรัพย์ ผลของคำสั่ง และผลทางการเงินที่เกี่ยวข้องสอดคล้องกัน สถานะจากตลาดอาจเป็นหลักฐานส่วนหนึ่ง แต่ไม่ควรใช้แทนการตรวจอื่นทั้งหมดเมื่อผลลัพธ์ยังไม่แน่ชัด
สำหรับการซื้อ ให้ตรวจว่าสินทรัพย์และปริมาณที่ตั้งใจซื้ออยู่ภายใต้การควบคุมของบัญชีที่ถูกต้อง สำหรับการขาย ให้เชื่อมการจำหน่ายสินทรัพย์กับเงินรับและค่าใช้จ่ายจริง เหตุการณ์ที่ส่งซ้ำไม่ควรสร้างบันทึกสินทรัพย์คงเหลือหรือกำไรซ้ำ
คำสั่งที่ยังมีผลยังเป็นส่วนหนึ่งของภาพรวมบัญชี แม้กลยุทธ์หยุดสร้างข้อเสนอใหม่แล้ว ระยะเวลาที่คำสั่งยังมีผลเหลืออยู่ยังอาจกระทบเงินหรือสินทรัพย์ที่ถืออยู่ คำสั่งพักระบบไม่ได้ยกเลิกการอนุญาตก่อนหน้าโดยอัตโนมัติ
ชั้นการกระทบยอดนี้ทำให้ระบบเชื่อมต่อมีประโยชน์มากกว่าการสาธิต เพราะช่วยให้แอปอธิบายได้ว่าตนถือสินทรัพย์อะไร ผูกพันสิ่งใดไว้แล้ว และการกระทำใดยังไม่มีข้อยุติหลังเกิดการขัดจังหวะ
ทดสอบข้อกำหนดของการเชื่อมต่อโดยไม่สมมติว่าข้อมูลตอบกลับสมบูรณ์แบบ
ใช้ข้อมูลตอบกลับสาธารณะที่บันทึกไว้หรือข้อมูลจำลองที่เป็นตัวแทน เพื่อทดสอบการแปลข้อมูล การแบ่งหน้า ช่องที่หายไป เหตุการณ์ซ้ำ สกุลเงินที่ไม่คาดหมาย และเส้นทางที่ไม่รองรับ อย่าใส่ข้อมูลลับในชุดข้อมูลทดสอบ และอย่าใช้อำนาจซื้อขายจริงเพียงเพื่อทดสอบตัวแปลข้อมูล
การทดสอบควรตรวจขอบเขตที่สำคัญทางเศรษฐกิจ หากผู้รับเปลี่ยนไป การตรวจข้อเสนอการกระทำควรไม่ผ่าน รายการขายที่ไม่พร้อมซื้อไม่ควรกลายเป็นชิ้นงานอื่นที่ได้รับอนุมัติอย่างเงียบ ๆ ตะกร้าที่สำเร็จบางส่วนควรสร้างบันทึกการถือครองเฉพาะสินทรัพย์ที่ได้รับจริง
ซ้อมกรณีถูกจำกัดอัตราและการเรียกหน้าข้อมูลที่ถูกขัดจังหวะควบคู่กับกรณีเรียกสำเร็จ แอปควรรายงานว่าข้อมูลครอบคลุมไม่ครบ แทนการตีความชุดข้อมูลบางส่วนว่าเป็นภาพตลาดที่ครบถ้วน
ก่อนอ้างว่าเส้นทางหนึ่งพร้อมใช้งาน ให้ตรวจวงจรทั้งหมดภายใต้การอนุญาตที่เหมาะสมและเงื่อนไขที่มีขอบเขต การเรียกข้อมูลสำเร็จยืนยันได้เฉพาะการเรียกข้อมูลครั้งนั้น ไม่ได้ยืนยันการลงนาม การดำเนินการ การยกเลิก หรือการชำระบัญชี
ตรวจหน่วยด้วยตัวอย่างขนาดเล็กที่ทราบคำตอบ
ตัวอย่างจำนวนเล็กน้อยที่คำนวณอย่างเป็นอิสระอาจช่วยพบข้อผิดพลาดที่ชุดข้อมูลตอบกลับซึ่งดูสมจริงตรวจไม่พบ ใช้โทเคนชำระเงินสมมติที่ระบุจำนวนตำแหน่งทศนิยมชัดเจน และตรวจทั้งยอดแสดงผลกับยอดธุรกรรม โดยไม่ใช้ฟังก์ชันแปลงเดียวกันเพื่อหาคำตอบที่คาดไว้
สำหรับโทเคนสมมติที่มีสิบแปดตำแหน่งทศนิยม หน่วยย่อยที่สุดจำนวน 27000000000000000 หน่วยแทนโทเคน 0.027 หน่วย สำหรับอีกโทเคนที่มีหกตำแหน่งทศนิยม หน่วยย่อยที่สุดจำนวน 27000000 หน่วยแทนโทเคน 27 หน่วย การทิ้งข้อมูลกำกับจำนวนทศนิยมหรือสมมติว่าสินทรัพย์ทุกชนิดใช้หลักเดียวกับโทเคนแรกทำให้เกิดข้อผิดพลาดการชำระเงินอย่างร้ายแรงได้ แม้แปลค่าดิบสำเร็จ
รักษาค่าในรูปสตริงทศนิยมหรือใช้การคำนวณจำนวนเต็มที่เหมาะสมตลอดการคำนวณทางการเงิน ค่าที่ปัดเพื่อแสดงผลอาจมีประโยชน์ต่อผู้อ่าน แต่ไม่เหมาะสำหรับสร้างยอดที่จะลงนามขึ้นใหม่อย่างแม่นยำ การตรวจธุรกรรมขั้นสุดท้ายควรใช้หน่วยที่ได้รับอนุญาตอย่างตรงตัว
สถิติต้องใช้วินัยเดียวกัน ราคาต่ำสุดและยอดปริมาณซื้อขายรวมอาจมาพร้อมช่องสกุลเงินแยกกัน ตรวจแต่ละยอดเทียบกับหน่วยของตนก่อนเปรียบเทียบ แปลงค่า หรือใส่ป้ายกำกับ การทดสอบควรมีตัวชี้วัดสองรายการที่ใช้หน่วยต่างกัน เพื่อไม่ให้แอปผ่านโดยบังเอิญจากการสมมติว่าทุกช่องในข้อมูลตอบกลับเดียวกันใช้สกุลเงินเดียวกัน ตัวอย่างที่เจาะจงเช่นนี้ตรวจสอบความหมาย แทนการพิสูจน์เพียงว่าวัตถุ JSON มีคีย์ตามที่คาด
ทำให้ตรวจติดตามระบบเชื่อมต่อได้โดยไม่เปิดเผยข้อมูลลับ
บันทึกประเภทคำขอ ระยะเวลารอ สถานะตอบกลับ ช่วงข้อมูลขาดหาย และภาระที่ยังไม่มีข้อยุติ การวัดเหล่านี้ช่วยแยกปัญหาบริการออกจากปัญหาการตีความข้อมูลหรือการดำเนินการ การทำงานตามปกติแทบไม่จำเป็นต้องบันทึกคำขอดิบทั้งหมด
ปกปิดข้อมูลอ่อนไหวและแยกตัวระบุสาธารณะออกจากข้อมูลรับรองลับอย่างชัดเจน รายงานวินิจฉัยควรช่วยอธิบายความล้มเหลว โดยไม่กลายเป็นอีกสถานที่หนึ่งที่เก็บคีย์ API หรือข้อมูลลงนามส่วนตัว
งานเชื่อมต่อ API ซื้อขาย OpenSea จะครบถ้วนก็ต่อเมื่อแอปอธิบายความหมายและข้อจำกัดของแต่ละการดำเนินการที่ใช้ได้ แยกการเข้าถึงออกจากอำนาจกระทำ แยกข้อมูลออกจากการดำเนินการ และแยกการตอบรับออกจากการชำระบัญชี สถาปัตยกรรมเช่นนี้ช่วยให้ทดสอบความสามารถปัจจุบันและรับมือการเปลี่ยนแปลงในอนาคตได้ง่ายขึ้น โดยไม่ต้องเดาสถานะบัญชี