تطوير واجهات برمجية API لتطبيق صراحة

فراس اللومنذ سنة

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

تجدر الإشارة إلى أننا سوف نستخدم Nodejs/ExpressJS لبرمجة الواجهات البرمجية مع قواعد بيانات MongoDB أيضًا. كما تجدر الإشارة أيضًا إلى أن هذه الواجهات البرمجية ستكون كالقاعدة التي يُمكن فيما بعد الاعتماد عليها لتطوير موقع إلكتروني، تطبيقات للهواتف الذكية، أو حتى تركها كواجهات برمجية يُمكن لمشاريع خارجية الاستفادة منها. وبناءً على ذلك، فإن عرض البيانات سوف يكون باستخدام JSON ولن يكون هناك تنسيق أو استخدام للغة HTML أو CSS.

أخيرَا، في المُقدّمة، سنتعلّم في هذا الدرس طريقة تحليل أي مشروع تستلمه كمبرمج، كيف تقوم بتحليله تحليل مبدأي والتفكير فيه بشكل منطقي لترتيب أفكارك والانطلاق لبدء البرمجة بخطوات منطقية قدر الإمكان.

صراحة

فكرة المشروع - Scope

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

آلية العمل - Functionality 

التسلسل المنطقي للعمل يبدأ من تسجيل حساب يختار المُستخدم فيه اسم المُستخدم، حساب البريد الإلكتروني، إضافة إلى كلمة المرور، وتلك بيانات تُخزّن في قاعدة البيانات في حالة أنها غير موجودة، أي أن اسم المُستخدم غير محجوز والبريد الإلكتروني غير مُستخدم من قبل. وبعد تسجيل الحساب، يتم إنشاء صفحة خاصّة بالمُستخدم يُمكن الوصول لها عبر الرابط yourdomain.com/user/username، حيث تتغيّر قيمة username بحسب اسم المُستخدم.

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

أخيرًا، عند تسجيل الدخول باستخدام الحساب، تظهر لصاحب الحساب الرسائل التي وصلته على حسابه مع إمكانية حذفها في حالة كان محتواها مُسيئًا.

قواعد البيانات - Model

لم نعتمد على قواعد بيانات علائقية Relational DB مثل mysql، بل سيتم الاعتماد على قواعد MongoDB لأننا بالأساس لن نحتاج لإجراء الكثير من العمليات والاستعلامات. كما لا توجد علاقات مُتشعّبة بين البيانات، فالرسالة ترتبط بمُعرّف حساب المُستخدم وانتهى كل شيء.

تهيئة النظام

بداية، تحتاج لتثبيت NodeJS على الحاسب من خلال التوجّه لصفحة التحميلات Downloads في موقع Nodejs الرسمي حيث تتوفّر حزم تثبيت لجميع أنظمة التشغيل دون استثناء. بعدها، نقوم بإنشاء مُجلّد جديد على الحاسب، وليكن باسم sarahah ونقوم بتشغيل سطر الأوامر الخاص بـ Nodejs في ويندوز، أو موجّه الأوامر Terminal في ماك macOS أو لينكس Linux والتوجّه للمجلّد عبر الأمر cd.

بعد الوصول للمُجلّد نقوم بكتابة الأمر التالي

npm init

وهذا لإنشاء ملف package.json الذي سوف يتضمّن الحزم البرمجية التي سوف تُستخدم. أخيرًا، نقوم بكتابة الأمر التالي لتثبيت حزمة expressjs للبدء في التطوير.

npm install express --save

الخطوة الأخيرة في هذا الدرس هي إنشاء صفحة index فقط لتجربة سير العمل. قُم بإنشاء ملف باسم index.js واكتب فيه الكود التالي

// نقوم بتضمين حزمة إكسبريس ثم إنشاء كائن جديد
var express = require("express")
var app = express()  // الكائن الجديد


/* 
طلب تجريبي على الرابط localhost:3033/ 
يعرض لنا ترحيب في الموقع
*/
app.get("/", (req, res)=> {
    res.send("Welcome To Sarahah")
})


// تشغيل السيرفر على المنفذ 3033، اختر أي منفذ تُريده متأكد أنه غير مُستخدم من قبل تطبيقات أُخرى
app.listen(3033, () =>{
    console.log("Sarahah is Running on 3033")
})

ملاحظة: صراحة هو موقع يسمح ترك النقد البنّاء وهو كيان مُنفصل لا علاقة له بالدروس. تم اختيار فكرته نظرًا لبساطة تنفيذها من جهة، ولرواج الفكرة من جهة أُخرى.

التعليقات (1)

shaker:

وكيف اشغل الكود

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !