<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Saad Suaid</title>
    <description>The latest articles on Forem by Saad Suaid (@alarbtech).</description>
    <link>https://forem.com/alarbtech</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3725465%2Ff3460eae-09dd-4655-af10-14873a71a804.jpg</url>
      <title>Forem: Saad Suaid</title>
      <link>https://forem.com/alarbtech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/alarbtech"/>
    <language>en</language>
    <item>
      <title>What is an API? لغة التخاطب بين البرامج</title>
      <dc:creator>Saad Suaid</dc:creator>
      <pubDate>Thu, 22 Jan 2026 12:42:07 +0000</pubDate>
      <link>https://forem.com/alarbtech/what-is-an-api-lg-ltkhtb-byn-lbrmj-5fl8</link>
      <guid>https://forem.com/alarbtech/what-is-an-api-lg-ltkhtb-byn-lbrmj-5fl8</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5892yorxv7c8mf8d0j8z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5892yorxv7c8mf8d0j8z.png" alt="رسم توضيحي لمفهوم API يظهر خادماً وحاسوباً متصلين بكابل بيانات لنقل المعلومات، مع نص: What is an API? لغة التخاطب بين البرامج." width="800" height="488"&gt;&lt;/a&gt;&lt;br&gt;
الـ API من أكثر المفاهيم تداولا في عالم البرمجيات ولكنه يربك الكثيرين في البداية رغم بساطته الجوهرية.&lt;/p&gt;

&lt;p&gt;في هذا المقال ستتعرف على الفكرة بشكل مبسط مع ربطها بأمثلة من التطبيقات التي تستخدمها يوميا.&lt;/p&gt;

&lt;h2&gt;
  
  
  ما هو الـ API؟
&lt;/h2&gt;

&lt;p&gt;كل تطبيق له مستخدم نهائي يتفاعل معه عبر واجهة رسومية (&lt;strong&gt;GUI&lt;/strong&gt;) مليئة بالأزرار والنصوص والصور. لكن عندما يريد برنامج أن يتحدث مع برنامج آخر لا يمكنه "الضغط على الأزرار" مثل البشر! وهنا يأتي دور الـ API.&lt;/p&gt;

&lt;p&gt;الـ &lt;strong&gt;API&lt;/strong&gt; (Application Programming Interface) هو لغة التخاطب الرسمية بين التطبيقات أو العقد الذي يحدد كيف يمكن لبرنامج ما أن يطلب خدمة أو بيانات من برنامج آخر.&lt;/p&gt;

&lt;h2&gt;
  
  
  كيف يعمل؟
&lt;/h2&gt;

&lt;p&gt;لنأخذ مثال زر "إعجاب" في تطبيق تواصل اجتماعي:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;المستخدم:&lt;/strong&gt; يضغط على زر Like في الواجهة الرسومية للتطبيق (GUI).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;الطلب:&lt;/strong&gt; الزر مرتبط بنقطة نهاية برمجية (API Endpoint) ترسل طلب HTTP إلى الخادم، يبدو شيئا كهذا:
&lt;code&gt;POST /posts/20/likes { user_id: 5 }&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;المعالجة:&lt;/strong&gt; الخادم (Server) يستقبل الطلب ويفسره وفق منطق مبرمج مسبقا ويسجل الإعجاب في قاعدة البيانات.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;الرد:&lt;/strong&gt; الخادم يعيد استجابة (Response) إلى التطبيق تؤكد نجاح العملية.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;التحديث:&lt;/strong&gt; يتم تحديث واجهة المستخدم فيتغير لون الزر أو عدد الإعجابات.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;بهذا الشكل يكون المستخدم قد تعامل مع زر بسيط، بينما في الخلفية جرى تواصل منظم بين الواجهة والخادم عبر API.&lt;/p&gt;

&lt;h2&gt;
  
  
  الباب الرسمي للبيانات
&lt;/h2&gt;

&lt;p&gt;لكي يحصل تطبيق على بيانات من خدمة أخرى هناك طريقان شائعان في عالم البرمجيات:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  ✅ &lt;strong&gt;الطريق الرسمي:&lt;/strong&gt; استخدام الـ API الذي توفره الخدمة (مثل ChatGPT API أو Google Maps API) وفق توثيق واضح ومفاتيح وصول (API Keys).&lt;/li&gt;
&lt;li&gt;  ❌ &lt;strong&gt;الطريق الملتوي:&lt;/strong&gt; مثل &lt;strong&gt;Scraping&lt;/strong&gt; أو محاولة الالتفاف للحصول على البيانات بطرق غير رسمية. هذا غالبا مخالف للشروط وغير مستقر وقد يكون غير قانوني.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;وجود API رسمي يعني أن الشركة قررت فتح جزء من وظائفها وبياناتها للمطورين بشكل آمن وقابل للاستخدام على المدى الطويل.&lt;/p&gt;

&lt;h2&gt;
  
  
  مثال يومي: تطبيق الطقس ☀️
&lt;/h2&gt;

&lt;p&gt;عندما تفتح تطبيق الطقس على هاتفك، التطبيق نفسه لا يملك أقمارا صناعية أو محطات رصد جوي.&lt;/p&gt;

&lt;p&gt;ما يحدث عادة هو أن التطبيق يرسل موقعك الجغرافي عبر API إلى خدمة طقس متخصصة ويستقبل منها بيانات الطقس بصيغة &lt;strong&gt;JSON&lt;/strong&gt; وثم يعرضها لك في واجهة مبسطة.&lt;/p&gt;

&lt;p&gt;هذا يسمح لعشرات التطبيقات المختلفة بأن تعتمد على نفس خدمة الطقس بدلا من إعادة بناء منظومة رصد من الصفر.&lt;/p&gt;

&lt;h2&gt;
  
  
  لماذا يعتبر الـ API مهماً للمطورين؟
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;التكامل:&lt;/strong&gt; يمكن التطبيقات من التكامل مع خدمات جاهزة مثل الدفع (Stripe) والخرائط والذكاء الاصطناعي وغيرها.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;توفير الوقت والتكلفة:&lt;/strong&gt; بدلا من بناء كل شيء من الصفر، تستهلك خدمة عبر API وتبني القيمة المضافة فوقها.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;الأتمتة:&lt;/strong&gt; يفتح الباب للأتمتة والتوسع مثل نشر المقالات أو إدارة البيانات برمجيا (كما هو الحال مع dev.to API نفسه).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;في النهاية، الـ API هو الجسر الذي يربط بين مكونات عالم البرمجيات ويجعل الأنظمة المختلفة قادرة على العمل معا دون إعادة اختراع العجلة في كل مرة.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps 🚀
&lt;/h2&gt;

&lt;p&gt;إذا فهمت الآن فكرة الـ API وتريد الانتقال للجانب العملي فإليك خطوات مقترحة:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;جرب بناء أول REST API لك باستخدام Go في هذا المقال:&lt;br&gt;
&lt;a href="https://dev.to/moficodes/build-your-first-rest-api-with-go-2gcj"&gt;Build Your First REST API with Go&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;تعرف على GraphQL وكيف يختلف عن REST في هذا المقال:&lt;br&gt;
&lt;a href="https://dev.to/whitep4nth3r/an-introduction-to-graphql-and-how-to-use-graphql-apis-13i"&gt;An introduction to GraphQL and how to use GraphQL APIs&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ابدأ بمقال REST إن كنت تفضل الأسلوب التقليدي أو انتقل مباشرة إلى GraphQL لو كنت مهتما بالمرونة العالية في جلب البيانات.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>api</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
