كيفية اختبار API باستخدام Python و JavaScript

كيفية اختبار API باستخدام Python و JavaScript

إنه خط رفيع بين اختيار واجهة برمجة التطبيقات (API) وتحديد ما إذا كان يمكنك العمل معها أم لا. تحتوي معظم واجهات برمجة تطبيقات REST على بنية عامة وتتبع مسار طلب مشترك. لكن بعض واجهات برمجة التطبيقات هناك تحيد عن المعيار. وبالتالي ، يصبح من الصعب استخدامها.

وبالتالي ، قبل إنشاء برنامجك بالكامل على واجهة برمجة تطبيقات ، فإنك تحتاج إلى إجراء فحوصات الجودة والتأكد من أنه يعمل بشكل جيد. إذن ما هو اختبار API ، وكيف يمكنك اختبار API؟

ما هو اختبار API؟

يتضمن اختبار API التقييم الأولي لوظائف API والأمان وقابلية التوسع والسرعة والمزيد لمعرفة ما إذا كانت مثالية للبرنامج الذي يريد استخدامه. لكن بشكل سطحي ، قد يتضمن الاختبار لمعرفة ما إذا كان يرسل الردود المناسبة عند تقديم الطلبات من خلال نقاط النهاية المختلفة.

اعتمادًا على هيكلها ، أثناء اختبار واجهة برمجة التطبيقات ، ستقدم طلبات (الحصول عليها أو نشرها أو تحديثها أو حذفها) إلى نقاط النهاية ذات الصلة. هناك العديد من المقاييس التي يجب التحقق منها أثناء اختبار API. ولكن على مستوى المبتدئين ، فأنت تريد التحقق من سلامة واجهة برمجة التطبيقات من رمز الحالة الخاص بها والتأكد من أنها تجلب البيانات الصحيحة وتقبلها.

تحقيقًا لهذه الغاية ، مثل أي طلب ويب ، قد تعرض واجهة برمجة التطبيقات رمز الحالة 200 أو 400 أو 500 أو حتى غيرها.

تستخدم معظم واجهات برمجة التطبيقات استجابات JSON لخدمة حمولاتها. اعتمادًا على الهدف ، قد يقبل الآخرون ويستجيبون بحمولات XML أو متعددة الأجزاء أو HTML.

كيفية اختبار API باستخدام Python و JavaScript

على الرغم من وجود العديد من أدوات اختبار واجهة برمجة التطبيقات لواجهة المستخدم الرسومية (GUI) على الإنترنت ، إلا أنه يمكنك تقييم واجهة برمجة التطبيقات بشكل أكثر دقة باستخدام البرامج النصية المكتوبة.

تخبر API في وثائقها نوع الطلبات التي تسمح بها وتوفر لها نقاط النهاية ذات الصلة. لذلك يمكنك الحصول عليها واختبارها باستخدام طرق الطلب المناسبة.

الموضوعات ذات الصلة: ما هي واجهة برمجة تطبيقات REST وكيف يمكنك الحصول على بيانات لتطبيقك أو موقعك الإلكتروني؟

على عكس مرحلة الإنتاج الفعلية ، يعتبر اختبار API خامًا. لذلك لا تحتاج إلى نفس القدر من التحديد الذي تحتاجه أثناء تشغيل API للإنتاج. على الرغم من وجود أنواع مختلفة من اختبارات API ، فسنركز أكثر على اختبارات التحقق من الاستجابة في هذه المقالة.

سنختبر API مخزن وهمية في هذا البرنامج التعليمي باستخدام جافا سكريبت جلب وبايثون طلبات المكتبة. أثناء القيام بذلك ، سنختبر نقاط النهاية للحصول على البيانات ونشرها وتحديثها وحذفها.

كيفية اختبار الحصول على نقطة نهاية API باستخدام JavaScript

كما لو كنت تستخدمه في الإنتاج ، يمكنك اختبار API في JavaScript باستخدام إما Axios أو طريقة الجلب .

للحصول على حالة الاستجابة من واجهة برمجة التطبيقات باستخدام الجلب :

fetch('https://fakestoreapi.com/products', ).then(res =>{ console.log(res) })

يُرجع الطلب أعلاه حالة 200 إذا كانت استجابة صالحة. بمجرد تقديم طلب ناجح ، يمكنك بعد ذلك طلب بيانات في الوقت الفعلي من واجهة برمجة التطبيقات.

دعنا نحصل على البيانات من واجهة برمجة التطبيقات هذه:

fetch('https://fakestoreapi.com/products', ).then(res =>{ if (res.ok){ return res.json() } }).then(response=>{ console.log(response) }).catch(err => console.log(err))

يبدو الرد على رمز الجلب أعلاه كما يلي:

كيفية اختبار API باستخدام Python و JavaScript

للحصول على سعر جميع المنتجات ، على سبيل المثال ، يمكنك استخدام وظيفة الخريطة :

fetch('https://fakestoreapi.com/products', ).then(res =>{ if (res.ok){ return res.json() } }).then(response=>{ response.map(data =>{ console.log(data.price) }) // console.log(response) }).catch(err => console.log(err))

ما سبق يسجل المخرجات التالية:

كيفية اختبار API باستخدام Python و JavaScript

اختبار الحصول على نقطة نهاية باستخدام Python

كما ذكرنا سابقًا ، تستخدم Python أيضًا مكتبة الطلبات للوصول إلى بيانات API.

للتحقق من حالة الرد في هذه الحالة:

import requests data = requests.get('https://fakestoreapi.com/products') print(data.status_code)

يُرجع تسجيل البيانات كما فعلنا أعلاه حالة مقابلة. إنه 200 في هذه الحالة ، رغم ذلك.

الآن دعنا نحصل على نفس البيانات مع Python كما فعلنا أثناء استخدام JavaScript:

import requests data = requests.get('https://fakestoreapi.com/products') myData = data.json() print(myData)

نتيجة ما سبق تبدو كالتالي:

كيفية اختبار API باستخدام Python و JavaScript

يمكنك الحصول على بيانات محددة باستخدام حلقة for .

للحصول على أسعار المنتجات ، على سبيل المثال:

import requests data = requests.get('https://fakestoreapi.com/products') myData = data.json() indexes = 0 for i in myData: goods = myData[indexes] indexes +=1 print(goods["price"])

إليك ما يبدو عليه الإخراج:

كيفية اختبار API باستخدام Python و JavaScript

اختبار Post Endpoint باستخدام JavaScript

بعد الاختبار ومعرفة أن طلب Get يعمل ، بناءً على هدفك وما تقدمه واجهة برمجة التطبيقات ، قد ترغب في التحقق مما إذا كان يمكنك إدخال البيانات فيه أيضًا.

على عكس كيفية تقديم طلب Get ، يقبل طلب النشر حمولة. بالإضافة إلى ذلك ، ستحتاج إلى تحديد أنه طلب نشر:

// Specify the payload let payload = { title: 'new product', price: 13.5, description: 'test description', image: '', category: 'electronic' } fetch('https://fakestoreapi.com/products', { method: "Post", headers:{ 'Content-Type': 'application/json' }, body: JSON.stringify(payload) //convert the payload to JSON } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

يسجل الرمز أعلاه رمز حالة الاستجابة والمعلومات الجديدة التي تم إدخالها عند تشغيله. يخبرك هذا إذا تم تنفيذ طلبك أم لا. عادةً ، إذا كان رمز الحالة هو 200 ، فإن واجهة برمجة التطبيقات الخاصة بك بها نقطة نهاية صالحة تُرجع الاستجابة المناسبة.

اختبار طلب آخر باستخدام بايثون

يمكنك أيضًا اختبار نقطة نهاية النشر لواجهة برمجة تطبيقات باستخدام طلبات بايثون . كما فعلت أثناء استخدام جلب JavaScript ، تحتاج إلى تحديد الحمولة هنا أيضًا:

import requests payload = { 'title': 'new product', 'price': 13.5, 'description': 'test description', 'image': '', 'category': 'electronic' } Posted = requests.post('https://fakestoreapi.com/products', data = payload ) print(Posted.status_code) print(Posted.json())

مثل JavaScript ، يسجل رمز Python أعلاه أيضًا رمز حالة الاستجابة والبيانات الجديدة المحددة داخل الحمولة .

اختبار نقاط نهاية الوضع

يستغرق تحديث بيانات واجهة برمجة التطبيقات نفس عملية النشر والحصول عليها بكلتا اللغتين.

للقيام بذلك باستخدام ميزة جلب JavaScript ، ما عليك سوى استبدال Post بـ Put :

// Specify the payload let payload = { title: 'new product', price: 13.5, description: 'test description', image: '', category: 'electronic' } fetch('https://fakestoreapi.com/products/19', { method: "Put", headers:{ 'Content-Type': 'application/json' }, body: JSON.stringify(payload) //convert the payload into JSON } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

إذا انتبهت إلى نقطة نهاية واجهة برمجة التطبيقات ، فسترى أنها تتضمن معرّف المنتج هذه المرة. هذه هي الطريقة التي تعرف بها API البيانات التي تريد تحديثها في هذه الحالة.

ومع ذلك ، قد تستخدم بعض واجهات برمجة التطبيقات طرقًا أخرى لصياغة نقاط النهاية الخاصة بها. لذلك هذا ليس معيارًا.

لاختبار تحديث بيانات واجهة برمجة التطبيقات باستخدام Python ، يمكنك استخدام request.put بدلاً من ذلك:

import requests payload = { 'title': 'new product', 'price': 13.5, 'description': 'test description', 'image': '', 'category': 'electronic' } Posted = requests.put('https://fakestoreapi.com/products/19', data = payload ) print(Posted.status_code) print(Posted.json())

الأمثلة المذكورة أعلاه ، إذا نجحت ، أدخل البيانات الجديدة في الموضع 19 كما هو موضح بواسطة نقطة نهاية API.

اختبار طلب الحذف

يعد حذف البيانات من واجهة برمجة التطبيقات أمرًا سهلاً مثل إجراء طلب Get. هذا لأنه ، على عكس Post و Put ، لا تحتاج إلى تحديد أي حمولة. كل ما تحتاجه هو حذف نقطة النهاية.

تستخدم واجهة برمجة التطبيقات التي اخترناها هنا معرف المنتج لتتبع بياناته. لذا ، فإن حذف المنتج أمر سهل:

fetch('https://fakestoreapi.com/products/19', { method: "Delete", headers:{ 'Content-Type': 'application/json' } } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

ما عليك سوى بضعة أسطر من التعليمات البرمجية لتحقيق نفس الشيء باستخدام Python:

import requests Posted = requests.delete('https://fakestoreapi.com/products/19', ) print(Posted.status_code) print(Posted.json())

كلا المثالين أعلاه يسجلان رمز حالة الاستجابة والبيانات التي تنتمي إلى المعرف الذي تم الاستعلام عنه (19 في هذه الحالة).

هل طرق الاختبار هذه عامة؟

بينما ركزنا فقط على واجهة برمجة تطبيقات واحدة في ه��ا المنشور ، فإن الطرق المستخدمة لاختبار نقاط نهاية CRUD لا تختلف عند التعامل مع واجهات برمجة التطبيقات الأخرى. قد يكون الاختلاف الوحيد ، بالطبع ، في القواعد المحيطة بكل بنية واجهة برمجة تطبيقات وإرشادات لطلب البيانات. بمجرد فك تشفيرها لواجهة برمجة تطبيقات مختارة ، يمكنك بعد ذلك استخدام الطريقة المناسبة ، كما هو موضح هنا ، لاختبار نقاط النهاية المقابلة لها.

وبالتالي ، نظرًا لأن كل واجهة برمجة تطبيقات لها قواعد للاتصال بها ، لذلك أثناء الاختبار ، قد يوفر البعض معلمات إضافية لك لتضمينها في رؤوس الطلبات. تتضمن هذه المعلمات عادةً رمز وصول أو غيره على النحو المنصوص عليه في الوثائق.


كيفية حساب قيمة nCr

كيفية حساب قيمة nCr

الجمع مفهوم رياضي. يشير إلى ترتيب العديد من العناصر حيث يكون ترتيبها غير ذي صلة. تصف الصيغة الأساسية عدد التركيبات الصالحة.

الشروع في العمل مع Redis و PHP لتخزين البيانات بسرعة

الشروع في العمل مع Redis و PHP لتخزين البيانات بسرعة

يعد محرك التخزين Redis الشهير أداة ممتازة ولا بد من امتلاكها في أي ترسانة من مطوري البرامج. يسمح محرك التخزين في الذاكرة بتخزين واسترجاع البيانات بسرعة مذهلة ، تصل إلى 32 مليون استفسار في الثانية ، مما يجعلها مكملاً رئيسياً لأي محرك قاعدة بيانات رئيسي.

أفضل 10 توزيعات Linux للمطورين

أفضل 10 توزيعات Linux للمطورين

على الرغم من أن Linux قد لا يكون نظام التشغيل المفضل للمستخدمين العاديين ، إلا أنه الخيار المفضل لمعظم المطورين والمبرمجين. Linux هو نظام تشغيل أكثر عملية تم تصميمه بشكل صريح مع وضع البرمجة والمطورين في الاعتبار.

كيفية حساب عدد الأرقام في رقم باستخدام C ++ و Python و JavaScript

كيفية حساب عدد الأرقام في رقم باستخدام C ++ و Python و JavaScript

العمل مع الأرقام جزء لا يتجزأ من البرمجة. توفر كل لغة برمجة دعمًا لمعالجة الأرقام بعدة طرق مختلفة. في هذه المقالة ، ستتعلم كيفية العثور على العدد الإجمالي للأرقام في عدد صحيح باستخدام الأساليب التكرارية والمستندة إلى السجل والقائمة على السلاسل.

كيفية استضافة موقع Python الخاص بك مجانًا على Heroku

كيفية استضافة موقع Python الخاص بك مجانًا على Heroku

لقد انتهيت للتو من إنشاء موقع ويب بسيط للمحفظة باستخدام Python ، وتريد طرحه باستخدام الاستضافة المجانية. لقد سمعت عن استضافة Herokus المجانية ، لكنك لا تفهم تمامًا الجوانب الفنية المتضمنة.

كيف تتعلم لغة Python مجانًا

كيف تتعلم لغة Python مجانًا

شهدت شعبية بايثون ازدهارًا هائلاً في الآونة الأخيرة ، ولسبب وجيه. بناء جملة Pythons بسيط وسهل الفهم ، خاصة عند مقارنته بالعديد من لغات البرمجة الشائعة الأخرى.

كيفية حساب قيمة nCr

كيفية حساب قيمة nCr

الجمع مفهوم رياضي. يشير إلى ترتيب العديد من العناصر حيث يكون ترتيبها غير ذي صلة. تصف الصيغة الأساسية عدد التركيبات الصالحة.

كيف تكتب وتجمع أول كود سوليتى الخاص بك

كيف تكتب وتجمع أول كود سوليتى الخاص بك

Solidity هي لغة البرمجة التي تستخدمها العقود الذكية على Ethereum blockchain. إنها لغة برمجة مكتوبة بشكل ثابت وموجهة للكائنات.

SQL مقابل NoSQL: ما هي أفضل قاعدة بيانات لمشروعك التالي؟

SQL مقابل NoSQL: ما هي أفضل قاعدة بيانات لمشروعك التالي؟

SQL مقابل NoSQL: ما هي أفضل قاعدة بيانات لمشروعك التالي؟

كيفية البحث عن مكعبات ومربعات N-Digit مثالية باستخدام Python و C ++ و JavaScript

كيفية البحث عن مكعبات ومربعات N-Digit مثالية باستخدام Python و C ++ و JavaScript

يحب العديد من المبرمجين حل المشكلات الرياضية الصعبة باستخدام الكود. يساعد على شحذ العقل وتحسين مهارات حل المشكلات. في هذه المقالة ، ستتعلم كيفية العثور على أصغر وأكبر المربعات والمكعبات الكاملة المكونة من رقم n باستخدام Python و C ++ و JavaScript. يحتوي كل مثال أيضًا على عينة إخراج لعدة قيم مختلفة.

كيفية استخدام بايثون كآلة حاسبة لسطر الأوامر

كيفية استخدام بايثون كآلة حاسبة لسطر الأوامر

بينما يمكنك استخدام آلة حاسبة رسومية على جهاز الكمبيوتر الخاص بك ، يمكن لمترجم لغة البرمجة Python أن يتضاعف كآلة حاسبة مكتبية. إنها مزحة شائعة في مجتمع Python والتي تم ذكرها في البرنامج التعليمي الرسمي. إليك كيف يمكنك استخدام بايثون كآلة حاسبة.

كيفية تضمين التغريدات في منشورات WordPress الخاصة بك

كيفية تضمين التغريدات في منشورات WordPress الخاصة بك

يعد تضمين خدمات الجهات الخارجية في منشورات WordPress الخاصة بك طريقة مثيرة لجذب اهتمام الزائر. يوفر المحتوى المضمن أيضًا إشارات مرئية تجعل المسح الضوئي أسهل. جعل WordPress إضافة هذا النوع من المحتوى أمرًا سهلاً.

ابدأ مع Jupyter Notebook: برنامج تعليمي

ابدأ مع Jupyter Notebook: برنامج تعليمي

إذا كنت عالم بيانات طموحًا يعمل مع Python أو R ، فأنت بحاجة إلى معرفة كيفية استخدام Jupyter Notebook. إنه IDE مفتوح المصدر وقائم على الخادم لمعالجة البيانات ومشاركة التعليمات البرمجية الحية ، فضلاً عن إدارة سير عمل علم البيانات.

الترميز ليس متاحًا للجميع: 9 وظائف تقنية يمكنك الحصول عليها بدونها

الترميز ليس متاحًا للجميع: 9 وظائف تقنية يمكنك الحصول عليها بدونها

التكنولوجيا هي بلا شك صناعة المستقبل. إذا كنت واحدًا من ملايين الشباب الذين هم على وشك الغوص في المرحلة الأولى من حياتك المهنية ، فقد تتساءل عما يجب عليك فعله إذا كنت لا تحب البرمجة.

7 أوامر أساسية لبدء استخدام بايثون للمبتدئين

7 أوامر أساسية لبدء استخدام بايثون للمبتدئين

يصبح تعلم لغة برمجة جديدة مثل Python أمرًا سهلاً إذا كان لديك خارطة طريق شاملة توضح بالتفصيل المفاهيم التي يجب تعلمها كمبتدئ وكيفية التقدم أكثر للوصول إلى المرحلة التالية. حتى المبرمجين المتوسطين يجب أن يصقلوا بشكل متكرر أساسياتهم لبناء أساس متين لأنفسهم.

أول تطبيق ويب ASP.NET لديك: كيفية البدء

أول تطبيق ويب ASP.NET لديك: كيفية البدء

ASP.NET هو إطار عمل مجاني عبر الأنظمة الأساسية من Microsoft لإنشاء تطبيقات وخدمات الويب. منصة ASP.NET هي امتداد لـ .NET ، وهي منصة مطورة للأدوات ولغات البرمجة والمكتبات المستخدمة لبناء تطبيقات مختلفة.