4. ما هً خدمات الوٌب
خدمة أو مجموعة من الخدمات ٌقدمها موقع وٌب
ٌستطٌع أي موقع أو تطبٌق أخر االتصال بها و االستفادة منها
تعطً نتائج (ملفات) بصٌغ معٌنة مثل JSONو XML
باالتصال عن طرٌق البروتوكوالت معروفة ومتداولة ()HTTP
خطوة لتحوٌل موقع لتطبٌق وٌب
13. JSON
Object تستطٌع الجافاسكربت قراءة هذه البٌانات مباشرة و تحوٌلها إلى
eval عبر الدالة
var obj = eval('(' + result + ')');
alert(obj.name);
alert(obj.age);
alert(obj.courses[0].name);
14. JSON
json_decode عبر الدالةObject و تحوٌلها إلىPHP أو فً الـ
<?php
$result = file_get_contents(
“http://site.com/api/1.0/students/student_info?id=31219209”);
$obj = json_decode($result);
echo $obj->name; //should print Ahmed Abdullah
?>
15. ĪXѳĬ
XML (Extensible Markup Language)
صٌغة عامة لتبادل البٌانات مدعومة فً لغات وبٌئات برمجٌة عدة
21. مرتب؟API كٌف تجعل عنوان الـ
أي بدال من
http://site.com/api/1.0/list_student_info.php?id=31219209
إلى
http://site.com/api/1.0/students/student_info?id=31219209
Apache Mod-Rewrite (htaccess redirect) باستخدام الـ
RewriteRule
^api/1.0/students/student_info$ /api/1.0/list_student_info.php [L]
22. ماذا عن تعدٌل بٌانات عن طرٌق خدمة الوٌب
ما قمنا باستعراضه هو جلب بٌانات فقط. ماذا عن تعدٌل بٌانات؟ (حذف,
إضافة, تعدٌل)؟
نفس الفكرة نقوم بعمل صفحات باسم مثال
add_new_student.php
update_student_info.php
delete_student_info.php
نقوم بإعطاء المعلومات الجدٌدة كنص JSONأو قٌم مباشرة إذا كانت
المعلومات قلٌلة
23. إضافة معلومات جدٌدة
add_new_student.php : مثال
http://site.com/api/1.0/students/add_new_student?data={"
name" : "Yazeed Saleh", "age“: 25, …. }
و تقوم خدمة الوٌب باسترجاع إما نجاح العملٌة أو الرفض
{"result":"success"}
{"result":"fail",
"reason":"You don’t have enough privileges"}
25. حماٌة المعلومات المتداولة بٌن الخدمة والمتصل
ماذا لو تطبيقك يتطلب اسم مستخدم وكلمة مرور؟
تزوٌد المتصل برقم سري لالتصال لكل متصل ()access token
ٌستخدمه بدال عن استخدام اسم المستخدم و كلمة المرور, وٌستطٌع تغٌٌره أي
وقت.
90291213=http://site.com/api/1.0/students/student_info?id
&access_token=b2Aqj1G91k2smMr6KAmB91a
26. حماٌة المعلومات المتداولة بٌن الخدمة والمتصل
ماذا لو تطبيقك يسمح أن يقوم مستخدم بالدخول على معلومات مستخدمين آخرين؟
تزوٌد المتصل برقم سري لكل مستخدم سمح للمتصل بالدخول لمعلوماته
()user access token
291213=http://site.com/api/1.0/students/delete_student?id
09&access_token=b2Aqj1G91k2smMr6KAmB91a&user_a
ccess_token=u3ErJk8a93Mna1Lq4E
هذه األسالٌب تعرف بما ٌسمى الـ OAuth
أو الـ Open Authentication
27. حماٌة المعلومات المتداولة بٌن الخدمة والمتصل
تظل المعلومات غٌر محمٌة بشكل كافً عبر االنترنت لذا ٌتم استخدام اتصال
مشفر HTTPSعادة فً خدمات الوٌب ذات البٌانات الحساسة
32. Access Tokenغٌر منتهً؟
للحصول على access tokenغٌر منتهً غٌر محدد بفترة زمنٌة ٌجب أن
تقوم بإنشاء تطبٌق على الفٌسبوك ثم طلب ما ٌسمى بالـ offilne access
35. خدمات وٌب توٌتر
متوفرة على العنوان /http://api.twitter.com
ٌ تطلب تسجٌل تطبٌق ومعلوماته قبل استخدامها
للحصول على ٌ Access Tokenتم االتصال على الخدمة
http://api.twitter.com/oauth/request_token
و إعطاءها رقم تطبٌقك السري كمتغٌر POST
37. مكتبات برمجٌة
فً الحقٌقة ال حاجة لمعرفة كافة خدمات الوٌب فً موقع معٌن إذا ما قام
بتقدٌم مكتبات برمجٌة تسهل عملٌة طلب الخدمة وإرسال واسترجاع
المعلومات.
مكتبات برمجٌة لخدمات وٌب توٌتر لمعظم اللغات على الرابط
http://dev.twitter.com/pages/libraries