Web APIs تعتمد على بروتوكول HTTP لتيسير العلاقة بين العميل والخادم بين مضيف الـ API (مقدم الخدمة) والنظام أو الشخص الذي يقدم طلب API (المستهلك).
المستهلك للـ API يمكنه طلب الموارد من نقطة نهاية API، وهي عبارة عن عنوان URL للتفاعل مع جزء من الـ API.
المستهلك للـ API يمكنه طلب الموارد من نقطة نهاية API، وهي عبارة عن عنوان URL للتفاعل مع جزء من الـ API.
بوابة الـ API تقوم بتصفية الطلبات السيئة ومراقبة حركة المرور الواردة وتوجيه كل طلب إلى الخدمة أو الميكروسيرفس المناسب.
بوابة الـ API يمكنها أيضًا التعامل مع ضوابط الأمان مثل المصادقة والتفويض والتشفير أثناء الانتقال باستخدام SSL وتحديد معدل الطلبات وتوزيع البايلود.
بوابة الـ API يمكنها أيضًا التعامل مع ضوابط الأمان مثل المصادقة والتفويض والتشفير أثناء الانتقال باستخدام SSL وتحديد معدل الطلبات وتوزيع البايلود.
Microservice Definition and Functionality:Microservices هي أجزاء م mod محددة من تطبيق الويب تتولى وظيفة معينة.تستخدم Microservices الـ لنقل البيانات وتشغيل الإجراءات
Backend Design and Architecture: يمكن أن يكون تصميم تطبيق الويب الخلفي متماسكًا (monolithic) حيث تكون كل الخدمات موجودة داخل تطبيق واحد، أو يمكن أن يكون لها بنية ميكروسيرفس (microservice architecture)، حيث تعمل كل خدمة كتطبيق منفصل ذاتي.
أنواع الـ APIs:تأتي الـ APIs في أنواع قياسية مختلفة، وتختلف كل نوع في قواعده ووظائفه وغرضه. عادةً ما يستخدم نوع واحد من الـ API في كل API معين، لكن قد تواجه نقاط نهاية لا تتطابق مع التنسيق والهيكل الخاص بالآخرين أو لا تتطابق مع نوع قياسي على الإطلاق.
أنواع الـ APIs الرئيسية:يتناول هذا القسم نوعي الـ APIs الرئيسيين الذين سنركز عليهما:RESTful APIsوGraphQL.
RESTful APIs تعتمد APIs الـ RESTful على مجموعة من القيود المعمارية لتطبيقات تتواصل باستخدام طرق HTT يمكن أن تختلف كل RESTful API عن الآخر في الطرق الممكّنة بعد CRUD ومتطلبات
RESTful APIs تعتمد APIs الـ RESTful على مجموعة من القيود المعمارية لتطبيقات تتواصل باستخدام طرق HTT يمكن أن تختلف كل RESTful API عن الآخر في الطرق الممكّنة بعد CRUD ومتطلبات
طلب واستجابة RESTful API:يوضح القسم طلب RESTful API النموذجي واستجابته، حيث يتم إرسال طلب HTTP GET للاستعلام عن موجودات المخزن للوسائد، ويتم الرد بـ JSON يوضح معلومات عن العنصر.
-رؤوس الـ API الشائعة:يوضح القسم بعض رؤوس الـ API الشائعة التي يجب أن تصبح على دراية بها.
-رؤوس الـ API الشائعة:يوضح القسم بعض رؤوس الـ API الشائعة التي يجب أن تصبح على دراية بها.
تفويض (Authorization(headers: يستخدم ترويسات التفويض لتمرير رمز أو بيانات اعتماد إلى موفر الـ API،وتأخذ صيغة `Authorization:<type><token/credentials>`،حيث يمكن أن يكون نوع التفويض Basic(يستخدم تشفير Base64 للبيانات)،أوBearer(يستخدم رمز API)،أو AWS-HMAC-SHA256
نوع المحتوى (Content Type) headers: تستخدم ترويسات نوع المحتوى للإشارة إلى نوع الوسائط المرسلة، وتختلف هذه الترويسات عن ترويسات القبول (Accept) التي تحدد نوع الوسائط التي ترغب في استقبالها.
GraphQL هو اختصار لـ Graph Query Language، وهو مواصفة للـ APIs تسمح للعملاء بتحديد هيكل البيانات التي يرغبون في طلبها من الخادم. يعتبر GraphQL RESTful، حيث يتبع ستة قيود من قيود APIs REST. ومع ذلك، يتبع GraphQL أيضًا نهجًا محوريًا للاستعلام
يتيح للعميل الحصول على البيانات المطلوبة بدقة، بدلاً من استقبال كل البيانات التي يعيدها الخادم من نقطة النهاية، بما في ذلك البيانات غير الضرورية.
- تستخدم GraphQL عمليات Query و Mutation و Subscription ضمن طلبات POST للتفاعل مع APIs GraphQL.
- تستخدم GraphQL عمليات Query و Mutation و Subscription ضمن طلبات POST للتفاعل مع APIs GraphQL.
مواصفات الـ API (API specifications): هي إطارات عمل تساعد المؤسسات على تصميم الـ APIs وإنشاء وثائق قراءة بشرية متسقة تلقائيًا، مما يساعد المطورين والمستخدمين على معرفة ما يمكن توقعه بشأن وظائف الـ API ونتائجه.
أهمية المواصفات:تساهم المواصفات في توحيد الوثائق وجعلها مفيدة للمطورين والمستخدمين،حيث يمكن للمستهلك برمجة تطبيقه لاستيعاب مواصفات مختلفة والتفاعل بسهولة مع أي API يستخدم تلك المواصفات.
مواصفة OpenAPI (OAS):هي واحدة من أبرز المواصفات للـ APIs الـ RESTful.تساعد OAS في تنظيم وإدارة الـ APIs عن طريق وصف النقاط النهائية والموارد والعمليات ومتطلبات المصادقة والتفويض.
لغة نمذجة الـ API الـ RESTful (RAML): RAML توليد توثيق متسق للـ APIs. RAML مواصفة مفتوحة مع YAML. هدف RAML، مثل OAS، إلى وثائق وتصميم وبناء واختبار الـ APIs الـ REST.
استخدام Postman: سنستخدم Postman لاستيراد المواصفات والوصول إلى قدرات APIs المؤسسة.
استخدام Postman: سنستخدم Postman لاستيراد المواصفات والوصول إلى قدرات APIs المؤسسة.
JSON (JavaScript Object Notation): هو تنسيق تبادل البيانات الرئيسي الذي سنستخدمه في هذا الكتاب، حيث يتم استخدامه على نطاق واسع للـ APIs. ينظم JSON البيانات بطريقة يمكن قراءتها بسهولة من قبل البشر ومعالجتها بسهولة من قبل التطبيقات
صيغة XML:يبدأ XML دائمًا بـ prolog، الذي يحتوي على معلومات حول إصدار XML والترميز المستخدم.
-العناصر في XML: تعتبر العناصر هي الأجزاء الأساسية في XML،حيث تتكون من العلامات والمعلومات المحيطة بها. يجب أن يحتوي XML على عنصر رئيسي (root element) ويمكن أن يحتوي على عناصر فرعية.
-العناصر في XML: تعتبر العناصر هي الأجزاء الأساسية في XML،حيث تتكون من العلامات والمعلومات المحيطة بها. يجب أن يحتوي XML على عنصر رئيسي (root element) ويمكن أن يحتوي على عناصر فرعية.
XML يُستخدم على نطاق واسع في تبادل البيانات وتوثيق هياكل الـ APIs، وفهمه سيُساعدك في التعرف على أنواع الـ APIs وطرق تعاملها مع البيانات
تنسيق YAML (YAML Ain’t Markup Language) يُعتبر YAML شكلًا خفيفًا لتبادل البيانات في الـ APIs، وهو اختصار لتعبير مركب يعني "YAML Ain’t Markup Language". تم إنشاؤه كتنسيق يُمكن قراءته بسهولة من قبل الإنسان والحاسوب لتبادل البيانات.
قراءة YAML:يُلاحظ أن YAML أكثر قراءة من JSON، حيث تبدأ مستندات YAML بعلامة "---" وتنتهي بعلامة "..." بدلاً من الأقواس المتعرجة. بالإضافة إلى ذلك، فإن الاقتباسات حول السلاسل النصية اختيارية في YAML، ولا يلزم ترميز عناوين URL بشرطات معكوفة.
أهمية المصادقة والتفويض:تسمح الـ APIs بالوصول العام للمستهلكين دون مصادقة،ولكن عندما تسمح الـ APIبالوصول إلى بيانات مملوكة أو حساسة،فستستخدم أشكالًا معينة من المصادقة والتفويض. يجب أن يقوم عملية المصادقة في الـ API بالتحقق من هوية المستخدمين وأن يمنحهم التفويض للوصول إلى البيانات
المصادقة البسيطة (Basic Authentication) المصادقة البسيطة في الـ API هي أبسط أشكال المصادقة حيث يتم تضمين اسم المستخدم وكلمة المرور في رأس الطلب أو جسمه.يمكن تمريرهما بنص صريح مثل username:password،أو ترميزهما بـ base64. الترميز ليس تشفيرًا، ويمكن فك تشفيره بسهولة.
مفاتيح الواجهة البرمجية(API keys)هي سلاسل فريدة تولدها مزودات واجهة البرمجة لتخويل الوصول للمستخدمين المعتمدين. بمجرد الحصول عليها،يمكن للمستخدمين تضمين مفتاح الواجهة البرمجية في الطلبات كما يحدده المزود. يتم عادة تمرير المفتاح في معلمات سلسلة الاستعلام،أو فيhttp header أو ككوكي.
JSON Web Token (JWT) هو نوع من الرموز المستخدمة عادة في المصادقة على أساس الرموز في واجهة برمجة التطبيقات (API) يتم استخدامه كالتالي:يتم المصادقة على المستهلك لواجهة برمجة التطبيقات لمزود واجهة برمجة التطبيقات بواسطة اسم المستخدم وكلمة المرور.
@0xVoka التشفير لاحقنا لاحقنا
جاري تحميل الاقتراحات...