แนวทางปฏิบัติที่ดีที่สุดสำหรับการออกแบบ API

0
117


เคล็ดลับในการสร้าง API ที่มีโครงสร้างและบำรุงรักษาได้ดี

ที่ Ayrshare เรายังคงเห็นอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (APIs) ที่นำมาใช้เป็นกระดูกสันหลังของการสื่อสารที่ราบรื่นระหว่างระบบซอฟต์แวร์ที่แตกต่างกัน และเช่นเดียวกับเรื่องตลก (พ่อ) ที่ดี API ควรเข้าใจง่ายและทิ้งความประทับใจที่ยั่งยืน คุณไม่ต้องการให้นักพัฒนาเกาหัวและพูดว่า“ ฉันไม่เข้าใจ!” -การแปล“ ฉันออกไปข้างนอก”

API ที่ได้รับการออกแบบมาอย่างดีช่วยให้มั่นใจได้ถึงประสบการณ์นักพัฒนาที่ยอดเยี่ยมซึ่งนำไปสู่ผู้ใช้ที่มีความสุขและลูกค้าที่มีความสุข

ในบทความนี้เราจะหารือเกี่ยวกับเคล็ดลับและแนวทางสำหรับการออกแบบ APIs ด้วยตัวอย่างจาก Ayrshare ของตัวเอง จุดสิ้นสุดของ REST API

เข้าใจผู้ชมนักพัฒนาของคุณ

ก่อนที่จะเขียนรหัสบรรทัดเดียวจำเป็นต้องมี รู้ว่าใครจะใช้ API ของคุณ– พวกเขาเป็นนักพัฒนาที่มีประสบการณ์หรือผู้มาใหม่หรือไม่? การทำความเข้าใจกับกลุ่มเป้าหมายของคุณมีอิทธิพลต่อการตัดสินใจเกี่ยวกับความซับซ้อนสไตล์เอกสารและระดับของสิ่งที่เป็นนามธรรม นึกถึงกรณีการใช้งานส่วนตัวของคุณเอง-คุณกำลังมองหาอะไรเมื่อคุณอ่านเอกสารสำหรับ API ของ บริษัท เช่น Stripe

ที่ Ayrshare เราออกแบบ API ของเราด้วยความเรียบง่ายและความยืดหยุ่นในใจสร้างสิ่งที่เราชอบใช้ตัวเอง ไม่ว่าคุณจะเป็นนักพัฒนาเริ่มต้นที่ต้องการรวมการโพสต์โซเชียลมีเดียอย่างรวดเร็วหรือองค์กรที่ต้องการคุณสมบัติขั้นสูงเช่นการวิเคราะห์และการจัดการผู้ใช้ API ของเราจะช่วยให้ระดับทักษะและข้อกำหนดที่หลากหลาย

สร้างความสอดคล้องและมาตรฐาน

ความสอดคล้องเป็นกุญแจสำคัญในการออกแบบ API คุณต้องการความสับสนของมาตรฐานที่แตกต่างกันเช่นการตอบสนอง API บางตัวใช้เคสอูฐ (อูฐ) และเคสงูอื่น ๆ (Snake_case) หรือไม่? และสำหรับข้อมูลเดียวกันชื่อฟิลด์ที่แตกต่างกันถูกใช้เช่นอายุและ user_age? Yuck.

ด้วยการมีมาตรฐานที่สอดคล้องกันคุณจะสร้างสัญญาที่สมเหตุสมผลกับผู้ใช้ของคุณและลดช่วงการเรียนรู้ความหงุดหงิดและหวังว่าจะป้องกันข้อผิดพลาด

เมื่อสร้างความสอดคล้อง API และมาตรฐานมุ่งเน้นไปที่:

  • วิธี HTTP: ยึดมั่นในหลักการพักผ่อนโดยใช้วิธี HTTP อย่างเหมาะสม:
    • GET สำหรับการดึงทรัพยากร
    • POST สำหรับการสร้างทรัพยากร
    • PUT หรือ PATCH สำหรับการอัปเดตทรัพยากร
    • DELETE สำหรับการลบทรัพยากร
  • การตอบสนอง ชื่อฟิลด์: หากการตอบสนองปลายทางหนึ่งคือ userIdอย่าใช้ id ในการตอบสนองปลายทางอื่นหากมีค่าเท่ากัน
  • รูปแบบข้อมูล: ยึดติดกับรูปแบบข้อมูลมาตรฐานเช่น เวลาซูลู เพื่อให้แน่ใจว่าเข้ากันได้และความเป็นสากล
  • โครงสร้าง URL ปลายทาง: มาก ปรัชญา API มีอยู่ในวิธีการจัดโครงสร้าง URL ปลายทางเช่น GET https://api.ayrshare.com/api/analytics– ในตัวอย่างนี้การกระทำคือ GET และประเภทคือ analytics– ไม่สำคัญว่านี่จะเป็นสไตล์ของคุณหรือไม่ GET https://api.ayrshare.com/api/getAnalyticsl จุดสำคัญคือการสอดคล้องกับจุดสิ้นสุดทั้งหมด
  • รหัสตอบกลับ http: ที่ รหัสตอบกลับ http เป็นข้อบ่งชี้แรกของผู้ใช้ API การโทรสำเร็จหรือหากมีปัญหาเกิดขึ้น ตัวอย่างเช่นการตอบสนองในช่วง 200 หมายถึงทุกอย่างดี การตอบกลับ 400 หรือสูงกว่าหมายถึงที่นี่เป็นปัญหา

ตัวอย่าง:

การสร้างโพสต์: เพื่อสร้างโพสต์โซเชียลมีเดียใหม่ Ayrshare ใช้ไฟล์ POST วิธีการกับไฟล์ /submit จุดสิ้นสุด:

  POST https://api.ayrshare.com/api/submit

ขอร่าง:

  {
    "submit": "Howdy World!",
    "platforms": ("fb")
  }

ร่างกายตอบสนอง:

{
    "standing": "success",
    "errors": (),
    "postIds": (
        {
            "standing": "success",
            "id": "1835773643315433893",
            "postUrl": "https://www.fb.com/33892",
            "platform": "fb"
        }
    ),
    "id": "G5y3PRI7bzLq1GmV5Xaa",
    "refId": "9abf1426d6ce9122ef11c72bd62e59807c5cc092",
    "submit": "A good looking day",
    "validate": true
}

พิจารณาการส่งคืนไฟล์ standingเช่น "error" หรือ "success" และตรวจสอบให้แน่ใจว่าตรงกับรหัสตอบกลับ HTTP

ดึงโพสต์: หากต้องการดึงรายละเอียดของโพสต์เฉพาะให้ใช้ไฟล์ GET วิธีการกับไฟล์ /submit/{id} จุดสิ้นสุด:

  GET https://app.ayrshare.com/api/submit/1234567890

การใช้วิธี HTTP และโครงสร้างจุดสิ้นสุดที่สอดคล้องกันนี้ทำให้ API ใช้งานง่ายและใช้งานง่าย

ออกแบบโดยคำนึงถึงความยืดหยุ่น

เมื่อ API ของคุณเติบโตขึ้นควรจัดการกับโหลดที่เพิ่มขึ้นโดยไม่ลดลงประสิทธิภาพ

  • การไร้สัญชาติ: ออกแบบ API ของคุณให้ไร้สัญชาติ แต่ละคำขอควรมีข้อมูลทั้งหมดที่จำเป็นในการประมวลผลทำให้สามารถปรับขนาดได้ดีขึ้น คำขอ Ayrshare API แต่ละรายการจะมีข้อมูลที่จำเป็นทั้งหมดเช่นคีย์ API และพารามิเตอร์เพื่อให้แน่ใจว่าเซิร์ฟเวอร์ไม่จำเป็นต้องเก็บข้อมูลเซสชันระหว่างคำขอ
  • การจัดการทรัพยากรที่มีประสิทธิภาพ: เพิ่มประสิทธิภาพจุดสิ้นสุดของคุณเพื่อจัดการการดำเนินการหลายอย่างได้อย่างมีประสิทธิภาพ หากทุกอย่างเป็นไปด้วยดีคุณจะได้รับสาย API จำนวนมากและต้องสามารถสนับสนุนพวกเขาได้ทั้งหมด พิจารณาโครงสร้างพื้นฐานแบบไม่มีเซิร์ฟเวอร์ – เช่น supabase หรือ firebase – เพื่อจัดการโหลดที่เพิ่มขึ้นโดยอัตโนมัติ แต่การเตือนการปรับขนาดอัตโนมัติอาจมีราคาแพงดังนั้นอย่าลืมกำหนดขีด จำกัด งบประมาณ ..
  • โหลดบาลานซ์และการ จำกัด อัตรา: ใช้กลยุทธ์เพื่อแจกจ่ายโหลดและป้องกันการละเมิด เพื่อรักษาประสิทธิภาพที่ดีที่สุดและป้องกันการละเมิด Ayrshare ได้ใช้การ จำกัด อัตราการใช้งานอย่างยุติธรรมโดยมีรายละเอียดในเอกสารของเราเพื่อให้แน่ใจว่าการใช้งานที่เป็นธรรมในหมู่ลูกค้าทั้งหมด ส่งคืน 429 รหัสตอบกลับ HTTP หากมีข้อผิดพลาดในการ จำกัด อัตรา
  • การดำเนินงานจำนวนมาก: Ayrshare ช่วยให้คุณส่งโพสต์ไปยังแพลตฟอร์มโซเชียลมีเดียหลายแพลตฟอร์มในคำขอเดียวลดจำนวนการโทร API นี่เป็นสิ่งที่ดีสำหรับผู้ใช้และระบบของคุณ

{
   "submit": "Thrilling information! Our app simply acquired higher.",
   "platforms": ("twitter", "fb", "linkedin", "instagram")
}

ใช้นโยบายการเสื่อมราคาที่ชัดเจน

เมื่อ API ของคุณวิวัฒนาการคุณสมบัติบางอย่างหรือจุดสิ้นสุดอาจล้าสมัย การใช้นโยบายการเสื่อมราคาที่ชัดเจนทำให้มั่นใจได้ว่าการเปลี่ยนแปลง API ของคุณจะไม่ทำลายการผสานรวมที่มีอยู่และให้เวลานักพัฒนาเพียงพอในการปรับตัว

  • แจ้งล่วงหน้า: สื่อสารการเปลี่ยนแปลงที่กำลังจะมาถึงล่วงหน้า สามารถทำได้ผ่านการแจ้งเตือนทางอีเมลการแจ้งเตือนแดชบอร์ดหรือการประกาศเฉพาะ
  • การอัปเดตเอกสาร: ทำเครื่องหมายคุณสมบัติที่เลิกใช้อย่างชัดเจนในเอกสารของคุณรวมถึงวันที่คัดค้านและวันที่ลบตามแผน
  • ระยะเวลาเกรซ: ให้เฟรมเวลาที่เหมาะสมในระหว่างที่รองรับทั้งคุณสมบัติเก่าและใหม่ช่วยให้นักพัฒนาสามารถเปลี่ยนได้อย่างราบรื่น
  • โซลูชั่นทางเลือก: เมื่อใดก็ตามที่เป็นไปได้แนะนำจุดสิ้นสุดทางเลือกหรือวิธีการที่นักพัฒนาสามารถใช้แทนคุณสมบัติที่เลิกใช้แล้ว

เมื่อเราวางแผนที่จะเลิกใช้จุดสิ้นสุดหรือคุณสมบัติที่ Ayrshare เราจะประกาศผ่าน:

  • การสื่อสารทางอีเมล: สมาชิกได้รับข้อมูลในจดหมายข่าวรายเดือนเกี่ยวกับการเปลี่ยนแปลงรวมถึงไทม์ไลน์
  • การอัปเดตเอกสาร: คุณลักษณะที่เลิกใช้แล้วจะระบุไว้อย่างชัดเจนในเอกสารของเราพร้อมคำแนะนำเกี่ยวกับทางเลือกอื่น นี่คือ การเปลี่ยนแปลง API ที่กำลังจะมาถึง หน้าหนังสือ.
  • ระยะเวลาสง่างาม: เรามั่นใจว่าคุณสมบัติที่เลิกใช้งานยังคงใช้งานได้เป็นระยะเวลาที่สำคัญโดยทั่วไปหลายเดือนเพื่อให้นักพัฒนามีเวลาเพียงพอในการอัปเดตแอปพลิเคชันของพวกเขา บางครั้งเครือข่ายสังคมให้เพียง 60 วัน แต่ในกรณีเหล่านั้นเราอาจพยายามหาทางเลือกหรือแจ้งให้ผู้ใช้ของเราทราบได้ทันที
  • สนับสนุนในระหว่างการเปลี่ยนแปลง: ทีมสนับสนุนของเราพร้อมที่จะช่วยเหลือนักพัฒนาในการย้ายไปยังคุณสมบัติใหม่หรือจุดสิ้นสุดเพื่อให้มั่นใจว่าการหยุดชะงักน้อยที่สุดของบริการของพวกเขา

ด้วยการมุ่งเน้นไปที่นโยบายการเสื่อมราคาที่แข็งแกร่ง Ayrshare ยังคงรักษาสภาพแวดล้อม API ที่มั่นคงและเชื่อถือได้แม้ในขณะที่เราแนะนำคุณสมบัติและการปรับปรุงใหม่

จัดลำดับความสำคัญมาตรการรักษาความปลอดภัย

การปกป้องข้อมูลและสร้างความมั่นใจว่าการสื่อสารที่ปลอดภัยนั้นไม่สามารถต่อรองได้ ไม่สามารถต่อรองได้!

การรับรองความถูกต้องและการอนุญาต: ใช้กลไกการรับรองความถูกต้องที่แข็งแกร่งเช่นคีย์ API หรือ OAuth 2.0 Ayrshare ใช้คีย์ API ของ Bearer สำหรับการตรวจสอบความถูกต้อง รวมคีย์ API ของคุณในไฟล์ Authorization ส่วนหัว:

  Authorization: Bearer YOUR_API_KEY

https ทุกที่: บังคับใช้ HTTPS เพื่อเข้ารหัสข้อมูลระหว่างการขนส่ง จุดสิ้นสุดของ Ayrshare ต้องการ HTTPS เพื่อให้มั่นใจว่าข้อมูลทั้งหมดที่ส่งผ่านจะถูกเข้ารหัส

การทดสอบความปลอดภัย: ดำเนินการปากกาปกติ (การทดสอบการเจาะ) บน API ของคุณ ถ้าคุณไม่พยายามทำลายพวกเขาคนอื่นจะ

จัดทำเอกสารที่ชัดเจนและครอบคลุม

เอกสารที่ดีมีความสำคัญเท่ากับ API เอง

การอ้างอิง API: ข้อมูลโดยละเอียดเกี่ยวกับแต่ละจุดสิ้นสุดพารามิเตอร์คำขอและตัวอย่างการตอบกลับเป็นสิ่งจำเป็น ข้อมูลจำนวนมากก็โอเคตราบใดที่มีการจัดระเบียบ นี่คือตัวอย่างของเรา โพสต์ปลายทาง

ตัวอย่างโพสต์ปลายทาง

บทช่วยสอนและไกด์: ให้คำแนะนำทีละขั้นตอนสำหรับงานทั่วไปเพื่อช่วยให้นักพัฒนาเริ่มต้นได้อย่างรวดเร็ว บทช่วยสอนที่เป็นลายลักษณ์อักษรนั้นยอดเยี่ยม แต่การสอนวิดีโอจะทำให้คุณเปล่งประกาย! ตัวอย่างเช่นนี่คือของเรา จัดทำคู่มือวิดีโอการรวม

ผู้เล่น YouTube
สร้าง API Integration

ตัวอย่างรหัส: ตัวอย่างในภาษาการเขียนโปรแกรมหลายภาษา AI วันนี้ยอดเยี่ยมสำหรับการแปลจากภาษาการเขียนโปรแกรมหนึ่งไปยังอีกภาษาหนึ่ง แต่ผู้คนยังคงชอบที่จะเห็นตัวอย่างในภาษาที่ต้องการและทำให้มันค่อนข้างช่วยได้เช่นกัน ตัวอย่างเช่น:

ตัวอย่างรหัสหลายแท็บ

ใช้การจัดการข้อผิดพลาดที่แข็งแกร่ง

การจัดการข้อผิดพลาดที่ชัดเจนและสอดคล้องกันช่วยในการดีบักและปรับปรุงประสบการณ์นักพัฒนา

  • รหัสสถานะ HTTP มาตรฐาน: ใช้รหัสสถานะที่เหมาะสมเพื่อระบุผลลัพธ์ของการโทร API โปรดดูด้านบนที่กล่าวถึงเรื่องนี้
  • ข้อความแสดงข้อผิดพลาดเชิงพรรณนา: ให้ข้อความข้อผิดพลาดที่มีความหมายและรหัสที่ช่วยระบุและแก้ไขปัญหา
  • โครงสร้างวัตถุข้อผิดพลาด: รักษาโครงสร้างที่สอดคล้องกันสำหรับการตอบสนองข้อผิดพลาด

ตัวอย่างเช่นนี่คือข้อผิดพลาดในการลบโพสต์ที่ไม่พบรหัสโพสต์ที่ส่ง:

HTTP/1.1 400 Unhealthy Request
Content material-Sort: software/json

{
    "motion": "delete",
    "standing": "error",
    "code": 114,
    "message": "Delete id not discovered.",
    "id": "IdpUOyihLEpIx0d0N9mI" 
}

อำนวยความสะดวกในการทดสอบและตรวจสอบได้ง่าย

ตรวจสอบให้แน่ใจว่า API ของคุณมีความน่าเชื่อถือและทำงานได้ดีภายใต้เงื่อนไขต่าง ๆ

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

ที่ Ayrshare เราเข้าใจถึงความสำคัญของการออกแบบ API ที่แข็งแกร่ง API โซเชียลมีเดียของเราถูกสร้างขึ้นด้วยแนวทางปฏิบัติที่ดีที่สุดเหล่านี้ในใจทำให้มั่นใจได้ว่าการบูรณาการที่ราบรื่นและประสบการณ์นักพัฒนาซอฟต์แวร์ที่เหนือกว่า

LEAVE A REPLY

Please enter your comment!
Please enter your name here