صفحة 1 من 3 123 الأخيرةالأخيرة
النتائج 1 إلى 15 من 39

الموضوع: تسمع عن API في لغات البرمجة ولكن هل تعرف ماهي ؟

  1. #1

    تسمع عن API في لغات البرمجة ولكن هل تعرف ماهي ؟



    بسم الله الرحمن الرحيم

    السلام عليكم ورحمة الله وبركاته ... وتحية طيبة للجميع ... وبعد

    أحببت أن أنفرد بهذا الموضوع لأهميته في البرمجة بشكل عام وفي php أيضاً بشكل خاص ..

    غالباً مانرى كلمة API تأتي مع المكتبات البرمجية وتأتي في المسميات وإذا بحثت عن معناها فستجد أنها إختصار لـ Application Programming Interface أي بالعربي (واجهة برمجة التطبيقات)

    ولكن هذه الترجمة ترجمة عقيمة أي بمعنى أخر هي ترجمة حرفية فقط و هي لا تظهر حقيقة معنى API ...

    عندما تبحث في المواقع الكبيرة وفي المشاريع البرمجية تمر عليك أشياء غريبة تحتوي على كلمة API فمثلاً تجد قواعد بيانات MySQL كاتبين مثلاً MySQL API و تجد Windows كاتبين Win32 API وتجد مثلاً موقع كاتبلك مثلاً My API وهكذا ...

    طيب مامعنى هذا الكلام ؟

    قبل أن نجيب على هذا التساؤل يجب أن نعرف أولاً مامعنى API ؟

    إذا ً مامعنى API ؟

    حرفياً هو كما ذكرنا بالأعلى ...

    أما من حيث المفهوم فسأشرحها بمثال :

    API هي عبارة عن (غلاف) لتغليف شئ صعب من الداخل وجعله سهل من الخارج ... :con2:

    وهذا كمفهوم ولكن كيف يطبق في البرمجة !!!؟ :deal:

    في حقيقة الأمر لو قال لك أحدهم أكتب لي برنامج يقوم بتحريك رأس الهارديسك :1power: ؟

    فسيكون جوابك هو (يانهار ازرق) :funny:

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

    ولزيادة التوضيح أكثر إليك المثال التالي :

    لو قلت لك أكتب برنامج على php يقوم بجمع العددين 2 و 5 فقط دون طباعة :

    فستقول هل أنت (أحمق) ياعبدالله عيد (لاتغلط ...!) :anger1:


    كود PHP:
     $c 5

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

    طيب الآن لو نزلنا مستوى أعمق بقليل وقلت لك نفذ عملية الجمع السابقة على لغة الأسمبلي :con2:

    كود:
     mov eax,2
     mov ebx,5
     add eax,ebx ; eax=7
    طيب الآن سترى أن هذا مقرف وتقول لي ماهي الفائدة من هذا الكلام طالما أني أستطيع كتابة كود بي اتش بي مباشرة لجمع العددين (كلامك سليم)

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

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


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

    ويمكن لأي شخص أن يبني API لشئ معين

    الآن سأريك العملي :

    أفترض الآن أنك انت الآن تريد كتابة برنامج للـ CD Writer أي برنامج يقوم بنسخ الإسطونات ... ؟!!
    فأنت ستتعامل هنا مع الآلة لكي تنسخ وأنت تعلم أن العملية معقدة وصعبة لذلك ستقوم أنت بإجراء هذه العملية الصعبة جداً وتقوم بوضعها على شكل مجموعة من الدوال السهلة وداخل كل دالة عملية معقدة جداً ولكن الشخص الذي سيستخدم مجموعة الدوال هذه سيكون مخفى عنه جميع التفاصل المملة الخاصة بالتعامل مع الـ CD Writer وهو سيرى فقط مجموعة من الدوال بهذا الشكل مثلاً :

    كود:
      function cdwriter_open()
      function cdwriter_burn()
      function cdwriter_stop()
      function cdwriter_close()
      ...
    الآن كما تلاحظ فأنت ترى دالة open لفتح محرك الأقراص وستقوم أنت بإستدعائها لفتح محرك الأقراص ولكنك فعلياً لاتعلم مدى العمليات المعقدة التي تقوم بها الدالة من الداخل لعمل اجراء فتح محرك الأقراص وهكذا لبقية الدوال

    وهنا تسمى مجموعة هذه الدوال بإسم cdwriter API فهي أعطتك الدوال بشكل مبسط وهي من الداخل تخفي صعوبات جمة بداخلها وهي تعمل مثل الصدفة بالضبط ..

    وأنت يمكنك عمل الـ API لأي شئ وليس للآلة فقط .. والدليل هو وجود مثلاً MySQL API وهي الدوال التي تقوم أنت فعلياً بإستخدامها في برامجك ضمن php فهل تعرف أنت مالذي يجري عندما تكتب عبارة مثل

    كود PHP:
    mysql_query('SELECT * FROM mytable'); 
    أعتقد أن كل ماتعرفه أنت هو أن دالة mysql_query هي للإستعلام ..

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

    لذلك هنا ستعرف أن API ستبعد عنك التفاصيل المملة والصعبة وتعطيك الزبدة :funny:

    ومن هذا المنطلق يمكنك أنت أنت تكتب API لتسهل عملية معينة هي في حقيقة الأمر صعبة للغاية .. ويمكنك كتابة الـ API على php أيضاً ...

    وكمعلومة أخيرة فإن جميع الموديول الموجودة في php هي عبارة عن APIs مثل

    SQLite
    MySQL
    Session
    String
    ...

    وأرجوا أن أكون وصلت إلى الهدف من وراء هذا الموضوع والله من وراء القصد وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل

    تحياتي
    أخوكم عبدالله عيد





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)


  2. #2
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2002
    المشاركات
    2,289


    يا هلا والله وغلااا


    موضوع مهم جدا جدا ووفقك الله تعالى لفتح نافذه جديدة دوماااا للتقنية


    شكرا لك جهدك الكريم والرائع






  3. #3


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


    وكمعلومة أخيرة فإن جميع الموديول الموجودة في php هي عبارة عن APIs مثل

    SQLite
    MySQL
    Session
    String
    جميل جداً ..

    هل نقدر نقول PEAR و ADODB
    هي API ?

    الى الآن مااستوعبته بشكل جيد خصوصا فيما يتعلق ب php ..

    مع الشكر ،





    __________________
    موقع رياض القرآن متخصص بالقرآن الكريم
    WwW.Ryadh-Quran.NeT

  4. #4
    عضو فعال
    تاريخ التسجيل
    May 2004
    المشاركات
    1,591


    والله مرت علي كثير وفهتها الحين ممتاز ...
    ربي يعطيك العافية يا استاذنــا ...

    تحياتي .





    __________________
    دروس php بالفيديو !

    marabe7 سابقاً .

    حسَّن موقعك في محركات البحث :
    أكاديمية التطوير

  5. #5


    السلام عليكم ورحمة الله وبركاته ... وبعد
    تحية طيبة للجميع ...

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

    الآن دعني أعطي مثال يوضح الصورة أكثر ..

    افترض أن لدي جدول في قاعد البيانات وكان إسم هذا الجدول هو student وكان فيه حقلين هما id,name وهما يمثلان رقم الطالب و اسم الطالب ... كلام جميل ...

    الآن لكي أتعامل مع هذا الجدول فإنني احتاج لعمليات كثيرة جداً مثل :

    الإستعلام منه
    الإدخال
    الحذف
    البحث
    وووو ... إلخ

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

    لذلك أنا الآن أنوي عمل Student API ووظيفتها تسهيل التعامل مع الجدول Student ...
    كلام جميل إذا كل ما أحتاجه هو عمل قائمة بالدوال التي تجعل من التعامل مع الجدول Student بسيط للغاية عندها سأقول :

    كود:
    function student_connect($user,$pass,$dbname,$host='localhost')
    function student_getid()
    function student_getname()
    function student_get_firstid()
    function student_get_nextid()
    function student_get_previousid()
    function student_get_lastid()
    function student_get_firstname()
    function student_get_nextname()
    function student_get_previousname()
    function student_get_lastname()
    function student_get_record()
    function student_remove_all()
    function student_remove($id)
    function student_update ($id,$name,$where_id)
    function student_insert($id,$name)
    function student_save_infile($filepath)
    ...
    كما تلاحظ الآن فلا يوجد أي عبارة MySQL أمامي وكل ما أراه هي دوال تتعامل مع الجدول Student فعلى سبيل المثال لاحظ الدالة student_insert فهي تأخذ باراميترين هما id و name ...

    وبهذه الدالة أنا أخفيت في الحقيقة استعلام الإدخال وسهلت العملية للمستخدم بحيث أنه فقط سيضع للدالة الرقم والإسم وهي ستقوم بالباقي دون أن يعلم المستخدم عن محتويات هذه الدالة وببساطة سيكون شكل هذه الدالة من الداخل كالتالي :

    كود PHP:
    function student_insert($id,$name)
    {
      
    //set of operations here
      
    $q_handle mysql_query("INSERT INTO Student VALUES(".$id.",'".$name."')");
      if(!
    $q_handle)
       die(
    'Sorry.. You can not insert new data to student table at this time');
      else
       echo 
    'Insert data successful';

    فلاحظ الزحمة التي أغنيته عنها وبكل بساطة عندما يريد المستخدم أن يدخل صف في الجدول فلن يحتاج لمعرفة هذه الزحمة وكل مايحتاجه الآن هو إدخال الصف بإستدعاء الدالة فقط كالتالي :


    كود PHP:
    student_insert(570,'Abdulah'); 
    والآن لاحظ الفرق الذي عملته هذه الدالة فلقد قامت بتسهيل الكثير للتعامل مع جدول الطلاب ومن هذا المنطلق يطلق على مجموعة دوال student بأنها student API ...

    أما لمن يريد أن يرى مثال حي فلينظر لمدونة وورد بريس والتي تحتوي على دوال كثير تقوم بتسهيل التعامل مع نظام المدونة بالكامل مثل تسهيل التعامل مع جداول المدونة في قاعدة البيانات ودوال للقوالب وهكذا وستجد أن الدوال تبدأ بـ wp أي إختصار لـ word-press وبهذه الطريقة قام مطوروا هذا النظام بتغليف وإخفاء جميع التعاملات الصعبة لنظامهم عن المستخدم وإعطاء دوال بسيطة تسهل عليه العمليات ..

    وبالنسبة للسؤال عن PEAR و ADODB فهي تغلف أيضاً العمليات وهذا في الحقيقة ماجاءت لأجله OOP ولكن حسب علمي أن API تطلق على الدوال وليس الكلاسات والكائنات ..

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

    تحياتي
    أخوكم عبدالله عيد





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)

  6. #6


    يعطيك العافية عبدالله

    مواضيع جميلة وقيمة تطرحها بالتوفيق ان شاء الله





    __________________
    سبحان الله وبحمدة ، سبحان الله العظيم

  7. #7


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





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  8. #8
    عضو شرف
    تاريخ التسجيل
    Apr 2002
    المشاركات
    1,379


    موضوع شيق , اعتقد ان هناك فائدة اخرى
    "واجهة برمجة التطبيقات" كما قلت افضل ترجمه , لها فائدة ان تجعل المستخدم يصل الى العلميات وليس فقط تسهيل العمليات , كمثال المواقع التىتقدم خدمة sms توفر لك api للتعامل مع نظامها هذه الدوال تتيح لك الوصول الى الخدمه وليس فقط تسهيل عملية الارسال.... صحيح انه هناك عمليات تقوم بها هذه الدوال ربما صعبه او العكس لكونها تعتمد على دوال اخرى !!

    طبعا اي دوال في برنامجك تنفذ مهام تعتبر api لبرنامجك ... طبعا اقرب مثال هو التعريفات او المكتبات التى تتوفر مع الاجهزة مثل قارء الكروت و الباركود وغيره الشركة المنتجة توفر دوال لمخاطبة الاجهزه .





    __________________
    ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
    الاتصال: daif@daif.net او جوال: 0556639884
    الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .

  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    405


    بصراحه الدرس اكثر من رائع يا استاذ عبد الله من زمان كان نفسي افهم الapi
    بس انا عايز اسأل سؤال ياتري الapi دي زي اللي بنزلها من pear و pecl ??






  10. #10
    عضو نشيط جدا
    تاريخ التسجيل
    Dec 2004
    المشاركات
    364


    والآن لاحظ الفرق الذي عملته هذه الدالة فلقد قامت بتسهيل الكثير للتعامل مع جدول الطلاب ومن هذا المنطلق يطلق على مجموعة دوال student بأنها student API
    ربما كان اوضح مثال على API هو الكلاسات classes الجاهزة التي نستخدمها في السكربتات ...

    حيث انه من خلال الكلاس تستطيع تنفيذ أكثر من مهمة دون تغيير الكود الموجود في ملف الكلاس ...


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



    ارق تحية





    __________________
    الخدمات البرمجية
    تعديلات برمجية - تطوير برمجيات جاهزة - صيانة قواعد بيانات
    برمجة خاصة (الأولوية للأفكار الجديدة والخاصة)

    المراسلة : http://it.rewaq.com

  11. #11
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2005
    المشاركات
    440


    درس راااائع

    سلمت لنا ياعبدالله






  12. #12
    عضو جديد
    تاريخ التسجيل
    May 2006
    المشاركات
    27


    السلام عليكم
    درس شيق اخوي لكن عندي استفسارين
    هل في فرق بين ال function و API ?? واذا الاجابه نعم ماهو الفرق اذاً؟
    وهل classes تعتبر API ?





    __________________
    be.adamant@gmail.com

  13. #13
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    389


    الان فهمت معنى المصطلح ،،
    استمر أخي عبدالله في عمل هكذا مواضيع
    دمتم بود





    __________________
    أرجوا من الجميع ان يسامحوني ، سواء عرفوني أو لم يعرفوني !! ، ارجوا من جميع من قد اكون اسأت اليهم أن يصفحوا عني ، ومن لديهم عندي حقوق أن يطلبوها مني .. جمعنا الله في الجنان .

  14. #14
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    39


    السلام عليكم ورحمة الله وبركاته
    تحية طيبة للجميع
    الشكر لجميع الاخوة لفتح هذه الموضوع الشيق

    ال api هى اختصار ل

    application program interface

    والافادة منها بتبسيط الموضع كمثال للphp

    انا الان اعمل مثلا فى مشروع لطقطق
    وهو تعدد السيرفرات فى مركز التحميل

    تمام
    الفكرة سهلة جدا اثناء الرفع لاكن كأضافة فى الداتا بيز او حتى دون لود ملف الخ

    يعمل الapi على تطبيق امر عن بعد مثلا لى مثل حذف ملف او بناء سيزون خاص بالدون لود او اى شىء اخر

    وغالبا ما يكون ال api ناتجه هو xml
    مثل الياهو فى الsearch او حتى الجوجول ونستخدم ال NuSOAP ext
    كواجهة لنا للتعامل مع هذا ال api

    هذه من الناحية العامة لاكن من الناحية البرمجية الداخلية فهو موضوع يختلف اخلاف بسيط
    نأخذ مثلا
    ال php وال mysql
    يعمل ال php اتصال مع mysql
    بواسطة ال api الخاص بال mysql
    ويسجل دخلوله عبر اليوزر والباس ورد لنبدأ العمليات

    فعند استعلام معين تكون مثلا مثل

    ahmed.php?my_remote_key=rggrfererewewr&what_to_do=del&id=1222

    ونقوم بالاتصال عبر السكويت مثلا
    عبر البورت 80 مثلا


    ونفس الفكرة تتم عبر البى اتش بى والماسيقول
    ويتم الاتصال عبر البورت ...

    هذه الفكرة بأختصار اعتقد
    شكرا لكم





    __________________
    NileSolutions.biz Creative Web Engineering
    Php,Perl,Xhtml,Javascript,Css C++

    http://astaza.com/
    http://uf3.com

  15. #15
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    395


    هل api تحتاج الى ملف خارجي للتعريف انك تستعمل ال api ام انك تكتبها مباشرة متل ما قال الاخ عبد الله عبد يا ريت التوضيح اكتر وما ترحرمونا من الفائدة





    __________________
    كود PHP:
    مغربي 00212527603014 
    bem-03@hotmail.com





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
اعلانات سوالف
0
أضف موقعك هنا | happymod هابي مود | instagram++