كيفية حساب قيمة nCr
الجمع مفهوم رياضي. يشير إلى ترتيب العديد من العناصر حيث يكون ترتيبها غير ذي صلة. تصف الصيغة الأساسية عدد التركيبات الصالحة.
إنه خط رفيع بين اختيار واجهة برمجة التطبيقات (API) وتحديد ما إذا كان يمكنك العمل معها أم لا. تحتوي معظم واجهات برمجة تطبيقات REST على بنية عامة وتتبع مسار طلب مشترك. لكن بعض واجهات برمجة التطبيقات هناك تحيد عن المعيار. وبالتالي ، يصبح من الصعب استخدامها.
وبالتالي ، قبل إنشاء برنامجك بالكامل على واجهة برمجة تطبيقات ، فإنك تحتاج إلى إجراء فحوصات الجودة والتأكد من أنه يعمل بشكل جيد. إذن ما هو اختبار API ، وكيف يمكنك اختبار API؟
يتضمن اختبار API التقييم الأولي لوظائف API والأمان وقابلية التوسع والسرعة والمزيد لمعرفة ما إذا كانت مثالية للبرنامج الذي يريد استخدامه. لكن بشكل سطحي ، قد يتضمن الاختبار لمعرفة ما إذا كان يرسل الردود المناسبة عند تقديم الطلبات من خلال نقاط النهاية المختلفة.
اعتمادًا على هيكلها ، أثناء اختبار واجهة برمجة التطبيقات ، ستقدم طلبات (الحصول عليها أو نشرها أو تحديثها أو حذفها) إلى نقاط النهاية ذات الصلة. هناك العديد من المقاييس التي يجب التحقق منها أثناء اختبار API. ولكن على مستوى المبتدئين ، فأنت تريد التحقق من سلامة واجهة برمجة التطبيقات من رمز الحالة الخاص بها والتأكد من أنها تجلب البيانات الصحيحة وتقبلها.
تحقيقًا لهذه الغاية ، مثل أي طلب ويب ، قد تعرض واجهة برمجة التطبيقات رمز الحالة 200 أو 400 أو 500 أو حتى غيرها.
تستخدم معظم واجهات برمجة التطبيقات استجابات JSON لخدمة حمولاتها. اعتمادًا على الهدف ، قد يقبل الآخرون ويستجيبون بحمولات XML أو متعددة الأجزاء أو HTML.
على الرغم من وجود العديد من أدوات اختبار واجهة برمجة التطبيقات لواجهة المستخدم الرسومية (GUI) على الإنترنت ، إلا أنه يمكنك تقييم واجهة برمجة التطبيقات بشكل أكثر دقة باستخدام البرامج النصية المكتوبة.
تخبر API في وثائقها نوع الطلبات التي تسمح بها وتوفر لها نقاط النهاية ذات الصلة. لذلك يمكنك الحصول عليها واختبارها باستخدام طرق الطلب المناسبة.
الموضوعات ذات الصلة: ما هي واجهة برمجة تطبيقات REST وكيف يمكنك الحصول على بيانات لتطبيقك أو موقعك الإلكتروني؟
على عكس مرحلة الإنتاج الفعلية ، يعتبر اختبار API خامًا. لذلك لا تحتاج إلى نفس القدر من التحديد الذي تحتاجه أثناء تشغيل API للإنتاج. على الرغم من وجود أنواع مختلفة من اختبارات API ، فسنركز أكثر على اختبارات التحقق من الاستجابة في هذه المقالة.
سنختبر API مخزن وهمية في هذا البرنامج التعليمي باستخدام جافا سكريبت جلب وبايثون طلبات المكتبة. أثناء القيام بذلك ، سنختبر نقاط النهاية للحصول على البيانات ونشرها وتحديثها وحذفها.
كما لو كنت تستخدمه في الإنتاج ، يمكنك اختبار 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))
يبدو الرد على رمز الجلب أعلاه كما يلي:
للحصول على سعر جميع المنتجات ، على سبيل المثال ، يمكنك استخدام وظيفة الخريطة :
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))
ما سبق يسجل المخرجات التالية:
كما ذكرنا سابقًا ، تستخدم 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)
نتيجة ما سبق تبدو كالتالي:
يمكنك الحصول على بيانات محددة باستخدام حلقة 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"])
إليك ما يبدو عليه الإخراج:
بعد الاختبار ومعرفة أن طلب 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 لا تختلف عند التعامل مع واجهات برمجة التطبيقات الأخرى. قد يكون الاختلاف الوحيد ، بالطبع ، في القواعد المحيطة بكل بنية واجهة برمجة تطبيقات وإرشادات لطلب البيانات. بمجرد فك تشفيرها لواجهة برمجة تطبيقات مختارة ، يمكنك بعد ذلك استخدام الطريقة المناسبة ، كما هو موضح هنا ، لاختبار نقاط النهاية المقابلة لها.
وبالتالي ، نظرًا لأن كل واجهة برمجة تطبيقات لها قواعد للاتصال بها ، لذلك أثناء الاختبار ، قد يوفر البعض معلمات إضافية لك لتضمينها في رؤوس الطلبات. تتضمن هذه المعلمات عادةً رمز وصول أو غيره على النحو المنصوص عليه في الوثائق.
الجمع مفهوم رياضي. يشير إلى ترتيب العديد من العناصر حيث يكون ترتيبها غير ذي صلة. تصف الصيغة الأساسية عدد التركيبات الصالحة.
يعد محرك التخزين Redis الشهير أداة ممتازة ولا بد من امتلاكها في أي ترسانة من مطوري البرامج. يسمح محرك التخزين في الذاكرة بتخزين واسترجاع البيانات بسرعة مذهلة ، تصل إلى 32 مليون استفسار في الثانية ، مما يجعلها مكملاً رئيسياً لأي محرك قاعدة بيانات رئيسي.
على الرغم من أن Linux قد لا يكون نظام التشغيل المفضل للمستخدمين العاديين ، إلا أنه الخيار المفضل لمعظم المطورين والمبرمجين. Linux هو نظام تشغيل أكثر عملية تم تصميمه بشكل صريح مع وضع البرمجة والمطورين في الاعتبار.
العمل مع الأرقام جزء لا يتجزأ من البرمجة. توفر كل لغة برمجة دعمًا لمعالجة الأرقام بعدة طرق مختلفة. في هذه المقالة ، ستتعلم كيفية العثور على العدد الإجمالي للأرقام في عدد صحيح باستخدام الأساليب التكرارية والمستندة إلى السجل والقائمة على السلاسل.
لقد انتهيت للتو من إنشاء موقع ويب بسيط للمحفظة باستخدام Python ، وتريد طرحه باستخدام الاستضافة المجانية. لقد سمعت عن استضافة Herokus المجانية ، لكنك لا تفهم تمامًا الجوانب الفنية المتضمنة.
شهدت شعبية بايثون ازدهارًا هائلاً في الآونة الأخيرة ، ولسبب وجيه. بناء جملة Pythons بسيط وسهل الفهم ، خاصة عند مقارنته بالعديد من لغات البرمجة الشائعة الأخرى.
الجمع مفهوم رياضي. يشير إلى ترتيب العديد من العناصر حيث يكون ترتيبها غير ذي صلة. تصف الصيغة الأساسية عدد التركيبات الصالحة.
Solidity هي لغة البرمجة التي تستخدمها العقود الذكية على Ethereum blockchain. إنها لغة برمجة مكتوبة بشكل ثابت وموجهة للكائنات.
SQL مقابل NoSQL: ما هي أفضل قاعدة بيانات لمشروعك التالي؟
يحب العديد من المبرمجين حل المشكلات الرياضية الصعبة باستخدام الكود. يساعد على شحذ العقل وتحسين مهارات حل المشكلات. في هذه المقالة ، ستتعلم كيفية العثور على أصغر وأكبر المربعات والمكعبات الكاملة المكونة من رقم n باستخدام Python و C ++ و JavaScript. يحتوي كل مثال أيضًا على عينة إخراج لعدة قيم مختلفة.
بينما يمكنك استخدام آلة حاسبة رسومية على جهاز الكمبيوتر الخاص بك ، يمكن لمترجم لغة البرمجة Python أن يتضاعف كآلة حاسبة مكتبية. إنها مزحة شائعة في مجتمع Python والتي تم ذكرها في البرنامج التعليمي الرسمي. إليك كيف يمكنك استخدام بايثون كآلة حاسبة.
يعد تضمين خدمات الجهات الخارجية في منشورات WordPress الخاصة بك طريقة مثيرة لجذب اهتمام الزائر. يوفر المحتوى المضمن أيضًا إشارات مرئية تجعل المسح الضوئي أسهل. جعل WordPress إضافة هذا النوع من المحتوى أمرًا سهلاً.
إذا كنت عالم بيانات طموحًا يعمل مع Python أو R ، فأنت بحاجة إلى معرفة كيفية استخدام Jupyter Notebook. إنه IDE مفتوح المصدر وقائم على الخادم لمعالجة البيانات ومشاركة التعليمات البرمجية الحية ، فضلاً عن إدارة سير عمل علم البيانات.
التكنولوجيا هي بلا شك صناعة المستقبل. إذا كنت واحدًا من ملايين الشباب الذين هم على وشك الغوص في المرحلة الأولى من حياتك المهنية ، فقد تتساءل عما يجب عليك فعله إذا كنت لا تحب البرمجة.
يصبح تعلم لغة برمجة جديدة مثل Python أمرًا سهلاً إذا كان لديك خارطة طريق شاملة توضح بالتفصيل المفاهيم التي يجب تعلمها كمبتدئ وكيفية التقدم أكثر للوصول إلى المرحلة التالية. حتى المبرمجين المتوسطين يجب أن يصقلوا بشكل متكرر أساسياتهم لبناء أساس متين لأنفسهم.
ASP.NET هو إطار عمل مجاني عبر الأنظمة الأساسية من Microsoft لإنشاء تطبيقات وخدمات الويب. منصة ASP.NET هي امتداد لـ .NET ، وهي منصة مطورة للأدوات ولغات البرمجة والمكتبات المستخدمة لبناء تطبيقات مختلفة.