نبذه تعريفية عن REST وكيفية استخدامها؟

الكاتب \ تصنيف تقنية, عام \ يناير 22, 2012

السلام عليكم ورحمة الله وبركاتة

وصلني من كم يوم سؤال عن REST و ماذا تعني و كيف تستخدم؟ سأشرح باختصار شديد

 

تعريف REST – Representational state transfer
هي طريقة للتخاطب بين الأنظمة في بيئية الويب تعتمد على بروتوكول HTTP وعلى الدوال المعروفة (GET  | POST | PUT | DELETE) وعلى خاصية أن كل خدمة يتم وصفها والوصول إلىها عن طريق رابط فريد . ظهرت في عام 2000 جزء بحث دكتورة للعالم Roy Fielding.

 

الفكرة عبارة عن تمثيل خدمة على موقع ويب برابط بحيث يقوم الطرف الثاني باستخدام هذه الخدمة عن طريق هذا الرابط سواء عن طريق (GET  | POST | PUT | DELETE) وأغلب المواقع تستخدم GET و  POST. على حسب الخدمة. هذه الخدمة ترجع الناتج للطرف الثاني وذلك اما أن تكون على شكل (XML | JSON| ATOM| RSS) وهي ليست حكراً على هذه الصيغ إذ أنه يمكن إرجاع نص فقط.

 

لنأخذ مثال:

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

 

 
<html>
    <head>
    <title>REST - SAMPLE </title>
    <!-- الستايل الخاص بتنسيق البيانات المسترجعة من تويتر -->
    <style type="text/css">
       #tweets { margin:40 0 40 0;}
      .odd, .even { display:block; padding:5px;}
      .odd { background-color:#efefef;}
      .even { background-color:#cecbcb;}
    </style>
    <!-- اضافة مرجع لمكتبة جي كويري -->
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <!-- كود الجافا سكربت الخاص باستدعاء خدمة تويتر -->
 
    <script type="text/javascript" >
      /* دالة الجي كويري التي ستعمل بمجرد عرض الصفحة*/
        $(document).ready(function () {
        /* هنا يتم ربط حدث ضغط الزر بدالة تقوم بالاتصال بتويتر */
            $("#get").click(function () {
 
                /* هنا يتم استدعاء الخدمة الموجودة بتويتر وارسال اسم المستخدم كمتغير */
                $.getJSON('https://api.twitter.com/1/statuses/user_timeline.json?callback=?&screen_name=' + $("#username").val(), function (data) {
                    /* في حال نجاح العملية يتم ارجاع التفاصيل على شكل (JSON) */
                    for (i in data) {
                        /* يتم عرض التويتات التي حصلنا عليها من استدعاء الخدمة */
                        if(i % 2 !=0 )
                            $('#tweets').append('<label class="odd">' + data[i].text + '</label>');
                        else $('#tweets').append('<label class="even">' + data[i].text + '</label>');
                    }
                });
            });
        });
    </script>
    </head>
    <!-- -->
    <body>
        <label>Type Twitter Screen Name</label>
        <input id="username" type="text" value="nalbadia" />
        <input id="get" type="button" value="Get" />
        <div id="tweets"/>
 
    </body>
</html>

النتيجة ستكون كما في الصورة التالية:

 

أتمنى أن وفقت في الشرح بشكل مبسط وسهل :)

وسوم: ,

2 من التعليقات لـ “نبذه تعريفية عن REST وكيفية استخدامها؟”

  1. Jury قال:

    شكرا جزيلًا لك ، الله يعطيك العافية
    كنت أنتظر إجابتك وتوقعتك نسيتها صراحة :”)

  2. عبدالله قال:

    السلام عليكم اخوي نواف ..

    اشكرك على الشرح افادني كثيرا بارك الله فيك وفي علمك …

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

إكتب تعليقك