لماذا تهم خيارات تصميم API أكثر مما تعتقد
API هو عقد. بمجرد نشره، يصعب تغييره للغاية دون كسر العملاء. قرارات التصميم التي تتخذها في اليوم الأول ستتبع نظامك طوال حياته كلها.
REST: المعيار الشامل
REST (نقل الحالة التمثيلية) ليس بروتوكولاً — إنه نمط معماري. القيود الرئيسية: التواصل عديم الحالة، واجهة موحدة (أفعال HTTP + URLs)، ونمذجة قائمة على الموارد.
متى تختار REST
واجهات برمجة التطبيقات العامة، وواجهات برمجة التطبيقات الموجهة للمتصفح، وخدمات CRUD البسيطة، والأنظمة التي يكون فيها التخزين المؤقت حرجاً.
GraphQL: استعلم عما تحتاج
query {
user(id: "123") {
name
email
posts(last: 5) {
title
publishedAt
}
}
}
هذا الاستعلام الواحد يُعيد اسم المستخدم وبريده الإلكتروني وعناوين آخر 5 منشورات — كل ذلك في رحلة واحدة. في REST، سيتطلب هذا 7+ طلبات.
gRPC: تواصل خدمات عالي الأداء
يستخدم gRPC Protocol Buffers للتسلسل وHTTP/2 للنقل. التسلسل الثنائي لـ Protobuf أصغر وأسرع بـ 3–10 مرات من JSON.
الإجابة الحقيقية: استخدم الثلاثة
تستخدم الأنظمة الكبيرة عادةً الثلاثة: REST لواجهات برمجة التطبيقات العامة، وGraphQL لمتطلبات بيانات الواجهة الأمامية المعقدة، وgRPC للتواصل الداخلي بين الخدمات.