VOL56: Fast, Lightweight, and Free Postman Open-Source Alternative for APIs
أهلًا وسهلا بكم في العدد السادس والخمسين من النشرة الأسبوعية لاقرأ-تِك 🚀
لا تنسوا أهلنا من صالح الدعاء,اللهم إنّا استودعناك اياهم، اللهم كُن عوناً لهم، اللهم انصرهم واحفظهم. 🇵🇸
أهلًا وسهلا بكم في العدد السادس والخمسين من النشرة الأسبوعية لاقرأ-تِك 🚀
سواء كنت مهندس برمجيات مبتدئ أو محترف، فنشرتنا هدفها انها تثري المحتوى التقني العربي سعيا للتطوير من جودة المحتوى باللغة العربية، من خلال تقديم أحدث المستجدات والتطورات في عالم البرمجيات، بالإضافة إلى أفضل الممارسات والنصائح القيمة، ونشر أحدث المقالات وترشيحات الكتب ومحتوى ورقة وقلم اللي بينزلوا بشكل مستمر في موقع اقرأ-تِك.
في الإصدار ده الفهرس هيكون كالآتي:
Fast, Lightweight, and Free Postman Open-Source Alternative for APIs
REST Vs. GraphQL
فرصة توظيف Remotely بمرتب يوصل لـ 60,000 جنيه ⏰
Browser & Server Negotiation Behind The Scene
Full Guide Into API Documentation With Template
الإصدار الأول من مدونات فطين في تصميم النظم
Fast, Lightweight, and Free Postman Open-Source Alternative for APIs
لو زهقت من Postman ؟ جرّب Hoppscotch!
لو اشتغلت قبل كده على APIs، أكيد سمعت عن Postman. هو من أشهر الأدوات اللي بنستخدمها عشان نجرّب ونتأكد من الـ APIs اللي بنبنيها شغالة صح. بس Postman بقى تقيل، وبيدفعك فلوس على حاجات ممكن تكون محتاجها ببلاش. وهنا بييجي Hoppscotch.
Hoppscotch هو بديل مفتوح المصدر ومجاني تمامًا بدا كمشروع بسيط اسمه "Postwoman" وسهل تشتغل عليه سواء من المتصفح أو حتى تنزله Self-host على جهازك أو سيرفرك الخاص، عشان تحافظ على بياناتك وتشتغل براحتك.
مميزات Hoppscotch
سهل وسريع وخفيف على الجهاز: الواجهة بتاعته بسيطة ومش بتلغبط، بتحط الـ URL، تختار الميثود (GET, POST, DELETE...)، وتبعت الريكوست، وتبدأ تتابع الرد بسهولة.
بيشتغل Offline: على عكس Postman اللي لازم تكون متصل بالنت حتى لو بتختبر API انت لسه بتطوره علي جهازك local . Hoppscotch ممكن تشتغل عليه أوفلاين كأنه PWA (Progressive Web App)، يعني تفتحه من المتصفح وتشتغل بدون نت.
تقدر تشغله Self-Hosted: ودي من أهم النقط، تقدر تنزّل Hoppscotch عندك على سيرفر أو جهازك، وتتحكم فيه ١٠٠٪. ده مفيد جدًا للشركات أو المشاريع اللي عندها بيانات حساسة ومش حابة تشتغل على أدوات سحابية.
يدعم بروتوكولات مختلفة: مش بس REST، Hoppscotch بيدعم كمان GraphQL و WebSocket و MQTT و Socket.IO... لو بتشتغل على تطبيق فيه real-time communication، هتحتاج الحاجات دي.
يتيح لك كتابة Tests و Scripts: لو محتاج تتأكد إن الـ API بترجع نفس الداتا اللي متوقعها، أو تكتب أكواد JavaScript بسيطة قبل الريكوست – Hoppscotch بيسهّل ده وبيوفر لك code snippets تساعدك تكتب بسرعة.
يقدم خاصية ال History: كل request بتبعته بيتسجّل في التاريخ، فتقدر ترجع له في أي وقت، وتشوف الرد اللي جالك، من غير ما تبعت من جديد.
Environments و Collections: زي Postman بالظبط، تقدر تحط متغيرات عامة (زي الـ token أو الـ baseURL)، وتستخدمها في أكتر من ريكوست، وكمان تنظم الريكوستات في Collections عشان تشتغل بطريقة مرتبة.
يسهل التعاون بين الفريق ببلاش: في Postman لو عايز تضيف أكتر من ٣ أشخاص لازم تدفع. في Hoppscotch، الكل يشتغل مع بعض ببلاش! وتقدر تعمل workspaces خاصة وتحدد مين يعمل إيه جوه الفريق.
Hoppscotch CLI: لو بتحب تشتغل من الTerminal ، فيه CLI خاص بـ Hoppscotch تقدر تستخدمه عشان تجرّب الريكوستات، أو تعمل export/ import للـ collections بسهولة.
مفتوح المصدر وبيكبر بسرعة: الميزة الكبيرة كمان إنه Open Source، يعني المجتمع كله بيطوّره، وبيتحسن بسرعة. لو عندك فكرة أو مشكلة، ممكن تفتح issue على GitHub، أو تتابع الناس على Discord.
لو انت مطور بتشتغل على APIs كتير، وعايز أداة خفيفة وسريعة وتتحكم فيها براحتك، Hoppscotch اختيار ممتاز. هو مش بس بديل مجاني لـ Postman، لكنه كمان بيديّك حرية أكتر، وبيشتغل في أي بيئة، سواء عندك أو على الكلاود.
REST Vs. GraphQL
غالبًا لو عملت APIs قبل كده هتكون استعملت REST وهيبقي عندك زميلك اللي عمال يقولك ما تيجي نشتغل بـ GraphQL زي الناس اللي هناك دي..فتعالى نعرف الفرق بين اثنين من أشهر أنواع الـ API Architectures الأول لازم نعرف أن الاتنين ليهم نفس أساس العمل وهو ان عندي Server ببعتله HTTP Request فيجاوب عليا بالمعلومات اللي طلبتها. 👌
REST APIs
الـ REST بينظم ال API علي شكل Endpoints وبيقولك تقدر تناديها ب عمليات محددة أشهرهم الـ GET, POST, PUT, DELETE وهيرد عليك بـ Standard Response
GraphQL
بينما الـ GraphQL بيقولك هي Endpoint واحدة تقدر تكلمها وتوصف انت عاوز ايه بالظبط من خلال استعمال Query وهيرد عليك بـ Standard Responseطب ما والله نفس الشيء ايش استفدت؟ الـ GraphQL بيحل مشاكل ظهرت مع استخدامنا للـ REST في كل الأنظمة لسهولته والطبيعي انه مش حل واحد يناسب الكل
طب ايه المشاكل اللي بيحلها GraphQL ؟
فرصة توظيف مختلفة ومميزة Remotely بمرتب يوصل لـ 60,000 جنيه 🚀
لو بتدور على شغل حقيقي يطور ويقيّم مهاراتك بدل الـ CV، يبقى لازم تشارك في الـ Hiring Quest الجديدة من CodeXQuests 👇
💼 Backend Developer (Mid-Level) @ Miran – Remote
ميران هي AI-powered fitness app، وعايزين يضموا لمهندسيهم شخص شاطر في:
🔸 Django & DRF
🔸 PostgreSQL
🔸 AWS S3 أو DigitalOcean Spaces
المميز في الـ Hiring Quest:
✅ مفيش مقابلات مملة
✅ مفيش تصفية للـ CVs
✅ الفرصة بتتحدد على حسب شغلك الفعلي
✅ أفضل المشاركين هيتراجع شغلهم وفرصة التوظيف حقيقية 100%
📅 سجل مجانًا قبل ما التسجيل يقفل انهاردة!
🌐 رابط التسجيل
ابدأ المشوار، وورّيهم شغلك وفي نفس الوقت ابني CV عملي من مشاريع حقيقة! 💪
Browser & Server Negotiation Behind The Scene
في عالم الإنترنت، كل حاجة بتتم على الويب بتعتمد على تفاعل بين المتصفح والسيرفر، والعملية دي بتبدأ بمجرد ما المستخدم يكتب عنوان الـ URL في المتصفح او يضغط علي لينك لموقع معين، وبتنتهي لما محتوي الموقع يظهر قدامه على الشاشة، في المقال ده هنتكلم عن الخطوات اللي بيمر بيها المتصفح والسيرفر لحد ما يظهر محتوي الموقع للمستخدم.
Navigation
ال navigation هو أول خطوة بنعملها علشان نعرض صفحة الويب ودا بيتم عن طريق اما الضغط علي لينك او من خلال كتابة رابط الموقع في ال search bar مباشرة.
DNS Lookup
تاني خطوة وهي ال DNS Lookup، كلمة DNS هي اختصار لـ Domain Name System، ودي ببساطة الخدمة اللي بتخلّي المتصفح يعرف عنوان ال Host الي متخزن عليه ال resource بتاعت الموقع الي بندور عليه، فـ دور الـ DNS هنا هو إنه يحوّل اسم الموقع اللي بتكتبه في المتصفح زي google.com او eqraatech.com إلى عنوان IP زي 93.184.216.34 علشان المتصفح يعرف يروح للسيرفر الصح ويطلب منه الصفحة او ال Resources الي محتاجها علشان يعرض الموقع.
بعد ما ال DNS system بيحول الDomain ل IP address بيبدأ ال browser يخزن ال IP address عنده في ال الكاش علشان في المرات القادمة يتستدعيه من ال Cache مباشرة بدون مايحتاج يبعت ل ال DNS systems مرة تانية، علي سبيل المثال متصفح زي chrome بيخزن ال ال cached DNS في ال path التالي .
chrome://net-internals/#dns
TCP Handshake
بعد ما المتصفح عرف عنوان الـ IP الخاص بالسيرفر، بيبدأ يعمل اتصال معاه عن طريق ال TCP 3-way Handshake، وده زي اتفاق مبدئي بين المتصفح و السيرفر علشان يجهّزوا للاتصال.
وبيتم علي 3 خطوات:
المتصفح بيبعت للسيرفر: "اريد التواصل معك" (SYN).
السيرفر بيرد: "مستعد للتواصل" (SYN-ACK).
المتصفح بيأكد: "فلنبدأ الاتصال" (ACK).
بعد الخطوات دي، الاتصال بيبقى جاهز لنقل البيانات، سواء كانت على HTTP أو HTTPS .
خصم 50% على جميع خطط الاشتراك السنوية لفترة محدودة، تقدروا دلوقتي تشتركوا في اقرأ-تِك وتستمتعوا بكافة المقالات في كل ما يخص هندسة البرمجيات باللغة العربية والمحتوى المميز من ورقة وقلم ومدونات فطين اللي بيتميزوا بتصاميم ذات جودة عالية وكل ده بحرية كاملة وكمان مفاجآت اقرأ-تِك الجاية 🚀
وبرضو متاح الاشتراك من خلال InstaPay و VodafoneCash 🎁
مدونات فطين في تصميم النظم - الإصدار الأول 🚀
كتابة هذا الكتاب لم تكن قرارًا مخططًا... بل كانت نتيجة لتراكمات من الحيرة، الإحباط، والدهشة اللي بيواجهوا أغلب الشباب حاليًا خصوصًا في رحلة البحث عن تعلم مهارات تصميم النظم واللي أصبحت من المهارات الأساسية في الانترفيوهات بالإضافة لكونها مهمة فعلًا على جميع المستويات.
على مدار سنوات من العمل داخل شركات تكنولوجية متعددة، وجدت نفسي مرارًا أواجه بعض الأسئلة زي:
لماذا صُمّم هذا النظام بهذه الطريقة؟
لماذا لم نرَ المشكلة إلا بعد فوات الأوان؟
هل كان يمكن أن نصمم الأمر بشكل أبسط؟
الإجابات كانت دائمًا معقدة، وتعود لأبعاد تقنية وتنظيمية ونفسية أيضًا.
هذا الكتاب ليس دليلًا أكاديميًا، بل هو مجموعة من التجارب والخبرات العملية كتبتها بعين المهندس الذي يراقب، يسأل، ويُخطئ ثم يتعلّم. المجموعة دي لم يتم ترجمتها للعربية من مدونات الشركات العالمية .. بل تم اعادة شرحها وتبسيطها باللغة العربية بأسلوب مختلف حتى تتسم بالبساطة بالإضافة لتميزها بالرسوم التوضيحية الجذابة.
اخترت اسم "فَطين" لأنه الشخصية التي تمنيت لو كانت موجودة معي منذ البداية— يسأل الأسئلة الصحيحة، ويفكّر بصوت عالٍ، ويحكي لك الدروس المستفادة.
إن كنت مهندسًا في بداية الطريق، أو تعمل منذ سنين ولديك خبرة متوسطة أو متقدمة في تصميم وبناء النظم فهذا الكتاب كتبته لك ليكون مرجعًا عمليًا لك يساعدك في تطوير مهاراتك التحليلية والفكرية في بناء وتطوير النظم الضخمة.
يتناول الكتاب ما يعادل من 15 تجربة عملية مميزة من داخل الشركات العالمية في تصميم النظم الضخمة بأكتر من 160 صفحة ويضم الآتي :
Introduction Into System Design
How Uber Serves Over 40 Million Reads Per Second
How Discord Stores Trillions of Messages
Dropbox's Chrono: Scalable, Consistent and Metadata Caching Solution
Unlocking Notion's Power - The Data Model Explained
How Shopify Mitigates Deadlocks in High Concurrency Environments
How LinkedIn Improves Microservices Performance With Protobuf
How Figma Secures Internal Web Applications
How GitHub Improves Reliability of Code Push Processing
How Meta Leverages AI For Efficient Incident Response
How Stripe Architected Massive Scale Observability Solution on AWS
Change Data Capture at Pinterest
How Canva Built Scalable and Reliable Content Usage Counting Service
How Netflix Migrates Critical Traffic at Scale With No Downtime
How Slack Handles Billions of Tasks in Milliseconds
How YouTube Supports Billions of Users With MySQL
System Design Comprehensive Guide
تقدروا تشوفوا النسخة كاملة من هنا كـ E-Book ، وحاولنا نخليها بسعر رمزي يناسب الجميع 👇
وكمان وفرناه على Kindle عشان الناس اللي بتحب تجربة القراءة على الـ Kindle منحرمهاش من التجربة الممتعة دي 🎉
بفضل الله أصبح متاح حاليا دعمنا من خلال الرعاة والشراكات وفعلنا الـ Sponsorship واحنا بنرحب بجميع الشراكات مع المؤسسات والشركات وأصحاب الأعمال لبناء مجتمع عربي يشجع على القراءة والتعلم ومشاركة التجارب والخبرات العملية في هندسة البرمجيات.
دورك كشريك أو راعي هيكون محوري في دعم المحتوى وتوسيع نطاق تأثيره. فانضم لرحلتنا وكن جزءًا من صناعة مستقبل التكنولوجيا في المنطقة 🚀
تقدروا تشوفوا التفاصيل كاملة من هنا والـ Analytics بتاعتنا من خلال اقرأ-تِك والنشرة الأسبوعية 👇
Full Guide Into API Documentation With Template
الـ API documentation بقى هي دليل مكتوب بيوضح وظائف الـ API، إزاي تدمجها في برنامجك، وحالات الاستخدام بتاعتها، مع شوية أمثلة. افتكر إن الـ API documentation بتكون محتوى تقني، يعني هيبقى فيها مصطلحات فنية، لكن المفروض إنها تكون سهلة القراءة والفهم.
الـ Documentation بتبقى زي الخريطة لأي مبرمج عاوز يستخدم الـ API بتاعتك. من غيرها، اللي هيجرب يشتغل بالـ API مش هيفهم أي حاجة وممكن يضيع وقت كتير يحاول يفهم بنفسه. لما يكون عندك Documentation كويسة، المطورين يقدروا يفهموا بسرعة إيه اللي لازم يتعمل، إيه اللي هيجيلهم من الـ API، وإيه اللي المفروض يبعتوه. ده بيقلل الأخطاء وبيسرع الشغل.
ليه الـ API Documentation مهمة
كمان لما الـ API Documentation تبقى مكتوبة بشكل واضح ومنظم، بتساعد إن اللي بيستخدم الـ API ميضيعش وقت كتير في الاستفسارات أو البحث عن حلول للمشاكل اللي قابلها. ده بيسهل الأمور وبيسرع عملية التطوير، وده بيزود فرصة إن ناس أكتر تستخدم الـ API بتاعتك، وده طبعًا في مصلحتك كمطور أو شركة.
مين المفروض يكتب API Documentation؟
الـ APIs بيطورها مبرمجين البرمجيات. وبما إنهم هما اللي بيبنوها وبيستخدموها، بيكون أسهل لهم إنهم يكتبوا الوثائق بتاعتها. لكن المشكلة إن المبرمجين ساعات بيكتبوا الوثائق بشكل فني بحت، وده بيخلي الوثائق صعبة الفهم على ناس كتير. وكمان ممكن ياخد منهم وقت طويل عشان يطوروا الـ API ويكتبوا الوثائق في نفس الوقت.
عشان كده الحل الأفضل إن اللي يكتب الوثائق يكون Technical Writer. الـ Technical Writer هو شخص بيجمع بين مهارات الكتابة التقنية والمعرفة التقنية عشان ينتج وثائق تكون مفهومة وسهلة.
الـ Technical Writer بيتعلم عن الـ API من المطورين، وبعدين بيكتب دروس وأمثلة تشرح استخدام الـ API. المطورين بعد كده بيتابعوا الكاتب عشان يتأكدوا إن الوثائق صحيحة وبيزودوه بأي معلومات إضافية لو احتاج.
الهدف النهائي إن الكل يشتغل سوا عشان يطلع وثائق بتشرح الـ API بشكل واضح وتساعد المستخدمين من غير لخبطه.
خلونا نشوف الـ Documentation ممكن يكون عامل ازاي وايه هي مكوناته عشان يكون فعلًا مثمر للفريق ونشوف الـ Best Practices!
رؤيتنا هي إثراء المحتوى التقني العربي وجعل التعلم من خلال القراءة أمتع، وذلك من خلال إثراء المحتوى التقني باللغة العربية وتشجيع المبرمجين على القراءة بلغتهم الأم والتفكير أيضًا بها.
لذلك اتحنا الفرصة أمام الجميع للمساهمة ومساعدتنا في نشر واثراء المحتوى التقني باللغة العربية, من خلال كتابة المقالات التقنية في مختلف مجالات هندسة البرمجيات.
وجب التنويه أنه لن يتم نشر كافة الأعمال التي تصل إلينا، وإنما سيتم الانتقاء منها ما يحقق هدفنا بإثراء المحتوى التقني العربي، ولذلك قد تُطلب بعض التعديلات من الكاتب قبل النشر.
لمعرفة المزيد بخصوص :
💬 المعايير العامة لكتابة ونشر المقالات
⚡️ كيفية الإرسال
🔥 التزامات اقرأ-تِك تجاه الكتاب
يمكنكم قراءة كافة التفاصيل من هنا 👇