ما هو تحقيق الربح من واجهات برمجة التطبيقات (API Monetization)؟
Liu Wei
November 11, 2022
تخيل أنك قمت بتطوير خدمة تجمع معلومات الخصومات من جميع محلات السوبر ماركت في مدينتك. إذا أراد مطورون آخرون الوصول إلى هذه البيانات، يمكنهم استخدام واجهة برمجة التطبيقات (API) للحصول على المعلومات التي يريدونها، ويمكننا فرض رسوم بناءً على استخدامهم للـ API. تحويل البيانات إلى أموال من خلال واجهات برمجة التطبيقات يُسمى "تحقيق الربح من واجهات برمجة التطبيقات" (API Monetization). تحقيق الربح من واجهات برمجة التطبيقات هو طريقة مثالية لجعل خدماتك مربحة.
بمجرد أن تتبنى شركة نموذج عمل تحقيق الربح من واجهات برمجة التطبيقات، فإن الشيء التالي الذي يجب مراعاته هو نموذج التسعير. معظم مزودي واجهات برمجة التطبيقات يستخدمون واحدًا من ثلاثة نماذج تسعير قياسية: الوصول المجمع، الدفع لكل استدعاء، والدفع شهريًا. في جميع هذه النماذج، يحتاج مزودو واجهات برمجة التطبيقات إلى حساب عدد استدعاءات واجهة برمجة التطبيقات لكل مستخدم. لذلك، تحديد هوية المستخدم أمر بالغ الأهمية لأنه قد يتم تقييد المستخدم إذا تجاوز عدد استدعاءات واجهة برمجة التطبيقات حزمة الخدمة. ومع ذلك، مجرد تحديد المستخدم الفردي ليس كافيًا. في كثير من الأحيان، يكون المستخدمون المؤسسيون هم الذين يشترون الخدمات. في هذه الحالة، يشارك موظفو الشركة نفس حساب الفوترة عند ارتباطهم بمنظمتهم. لذا، من المهم بنفس القدر تحديد المنظمة التي ينتمي إليها المستخدم.
تطبيقات تحقيق الربح من واجهات برمجة التطبيقات
تطبيقات تحقيق الربح من واجهات برمجة التطبيقات موجودة في كل مكان. رمز التحقق عبر الرسائل القصيرة (SMS) هو مثال نموذجي لتحقيق الربح من واجهات برمجة التطبيقات. كما تستخدم شركات السحابة هذا النموذج لخدمات مثل قوائم الانتظار، التعرف على النصوص، وغيرها. تستخدم شركات الأمن هذا النموذج لخدمات جدار حماية تطبيقات الويب (WAF) وفلترة المحتوى. هذا النموذج الربحي ناجح جدًا لدرجة أننا بحاجة ماسة إلى مجموعة تقنيات مناسبة لدعمه. أي أننا نحتاج إلى شيء لإدارة واجهات برمجة التطبيقات بشكل دقيق.
عند إدارة واجهات برمجة التطبيقات، نحتاج إلى إدارة من يمكنه النشر، وما يجب نشره، وأين يتم النشر، مع التأكد من أن واجهات برمجة التطبيقات تتوافق مع المعايير التنظيمية مثل أنماط الروابط، اتفاقيات التسمية، وقواعد التحكم في الوصول. علاوة على ذلك، يحتاج كل قسم إلى أن يكون قادرًا على إدارة واجهات برمجة التطبيقات الخاصة به بشكل مستقل، بما في ذلك تحديثات واجهات برمجة التطبيقات أو تحسينات التصميم، تنفيذ التحكم في حركة المرور، تقييد المعدل، واستراتيجيات الأمان. يجب علينا أيضًا مراقبة الاستخدام، الأداء، والمقاييس الأخرى في الوقت الفعلي.
بوابة واجهات برمجة التطبيقات (API Gateway) هي الأداة التي تم تقديمها لإدارة واجهات برمجة التطبيقات. يمكن لبوابات واجهات برمجة التطبيقات حل العديد من المشكلات في التعامل مع واجهات برمجة التطبيقات. كوسيط مركزي، تقوم بوابة واجهات برمجة التطبيقات بتوجيه جميع طلبات العملاء الواردة إلى الوجهة المقصودة (الخدمة الخلفية)، مما يجعل واجهة برمجة التطبيقات الخاصة بك أكثر أمانًا وسهولة في الإدارة. تدعم معظم بوابات واجهات برمجة التطبيقات أيضًا بروتوكولات التفويض والمصادقة المختلفة حتى يتمكن المستخدمون من تنفيذ تحكم معقد في الأذونات والعديد من الوظائف الأخرى، مثل تقييد المعدل.
هناك العديد من المشاريع مفتوحة المصدر الشهيرة لبوابات واجهات برمجة التطبيقات، وأبرزها Apache APISIX وحلولها البديلة للشركات كخدمة SaaS، API7 Cloud.
ممارسات Apache APISIX في تحقيق الربح من واجهات برمجة التطبيقات
يدعم Apache APISIX هذه الوظائف الأساسية ويتكامل مع منصات المراقبة المختلفة (Prometheus، OpenTelemetry، Apache Skywalking، إلخ). عززت هذه الإضافات المدمجة قدرة Apache APISIX على تحليل واجهات برمجة التطبيقات، مما يحقق مراقبة شاملة بشكل لا يصدق. علاوة على ذلك، بالنسبة لمشكلة تحديد هوية المستخدم، قدم Apache APISIX مفهوم "المستهلك".
تتوافق المستهلكون المختلفون مع مستخدمين مختلفين. يرتبط كل مستهلك بإضافاته وتكوينات المصدر الأعلى. يكون المستهلكون مفيدين عندما يكون لديك مستهلكون مختلفون يطلبون نفس واجهة برمجة التطبيقات، وتحتاج إلى تنفيذ تكوينات مختلفة للإضافات والمصدر الأعلى. في هذه الحالة، سيقوم نظام المصادقة بالتعرف بناءً على المستهلك لتكوين قواعد مختلفة، مما يجعل إدارة المستخدمين أكثر سهولة.
لكن مجرد دعم المستهلكين ليس كافيًا. بالنسبة للمستخدمين المؤسسيين، يحتاج العديد من المستهلكين إلى مشاركة نفس الحصة الاستهلاكية، وإذا قمنا بإدارة تكوين كل مستهلك بشكل منفصل، فإن العملية ستكون مرهقة للغاية. لذلك، قدم APISIX مفهومًا آخر وهو "مجموعة المستهلكين". يمكن لمجموعة من المستهلكين مشاركة نفس مجموعة التكوينات ونفس الحصة الاستهلاكية.
بعد فهم ممارسات APISIX في تحقيق الربح من واجهات برمجة التطبيقات، دعونا نلقي نظرة على تطبيق محدد.
- تكوين وظيفة تقييد المعدل للمؤسسة، ويشارك مستخدمو المؤسسة نفس التكوين
# إنشاء مجموعة مستهلكين
curl http://127.0.0.1:9180/apisix/admin/consumer_groups/company_a -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"plugins": {
"limit-count": {
"count": 200,
"time_window": 60,
"rejected_code": 503,
"group": "$consumer_group_id"
}
}
}'
# إنشاء المستهلك 1
curl http://127.0.0.1:9180/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"username": "jack",
"plugins": {
"key-auth": {
"key": "auth-one"
}
},
"group_id": "company_a"
}'
# إنشاء المستهلك 2
curl http://127.0.0.1:9180/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"username": "johnson",
"plugins": {
"key-auth": {
"key": "auth-two"
}
},
"group_id": "company_a"
}'
# إنشاء المسار
curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri": "/get",
"plugins": {
"key-auth": {}
},
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org": 1
}
}
}'
# الوصول إلى المسار
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
...
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 199
...
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-two'
...
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 198
...
# تغيير قيمة العد إلى 2 طلب في الدقيقة
curl http://127.0.0.1:9180/apisix/admin/consumer_groups/company_a -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"plugins": {
"limit-count": {
"count": 2,
"time_window": 60,
"rejected_code": 503,
"group": "$consumer_group_id"
}
}
}'
# الوصول إلى المسار
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-two'
...
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 1
...
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
...
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 0
...
# لا يوجد عد، HTTP 503
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
HTTP/1.1 503 Service Temporarily Unavailable
# بعد دقيقة، استعادة العد
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
...
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 1
...
# إنشاء مسار آخر
curl http://127.0.0.1:9180/apisix/admin/routes/2 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri": "/anything",
"plugins": {
"key-auth": {}
},
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org": 1
}
}
}'
# يمكنك رؤية أن كلا المسارين يشاركان نفس العد
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
...
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 1
...
curl -i http://127.0.0.1:9180/anything -H 'apikey: auth-one'
HTTP/1.1 503 Service Temporarily Unavailable
...
ملخص
لتحويل الخدمات والبيانات إلى إيرادات من خلال تحقيق الربح من واجهات برمجة التطبيقات، تحتاج الشركات إلى إدخال أدوات إدارة واجهات برمجة التطبيقات الاحترافية: بوابة واجهات برمجة التطبيقات. أشهر بوابة واجهات برمجة التطبيقات هي Apache APISIX، والتي لديها ممارسات غنية في تحقيق الربح من واجهات برمجة التطبيقات. APISIX تخلق مفاهيم مثل المستهلك ومجموعات المستهلكين لتسهيل إدارة واجهات برمجة التطبيقات بشكل كبير وتمكن الشركات من تحقيق الربح من واجهات برمجة التطبيقات بسلاسة أكبر.