بناء خدمات ويب الطريق REST

Resource Page: http://www.xfront.com/REST-Web-Services.html
روجر L. كوستيلو

سأقدم أولا مقدمة موجزة للراحة ثم تصف كيفية بناء خدمات ويب في أسلوب REST.

ما هو REST؟
REST هو مصطلح صاغه روي فيلدينغ في الدكتوراه أطروحة [1] لوصف نمط العمارة من أنظمة الشبكات. REST هي اختصار الوقوف لنقل الحالة التمثيلية.
لماذا يطلق عليه نقل الدولة التمثيلي؟
وتتألف الشبكة من الموارد. مورد أي بند من الفائدة. على سبيل المثال، قد بوينغ للطائرات كورب تحديد مورد 747. قد عملاء الوصول إلى هذا المورد مع هذا URL:
http://www.boeing.com/aircraft/747

يتم إرجاع تمثيل المورد (على سبيل المثال، Boeing747.html). تمثيل يضع تطبيق عميل في الدولة. نتيجة العميل تعبر ارتباط تشعبي في Boeing747.html هو يتم الوصول إلى مورد آخر. تمثيل جديد يضع تطبيق العميل إلى بعد دولة أخرى. وهكذا، فإن التغييرات تطبيق العميل (نقل الصورة) الدولة مع بعضها تمثيل الموارد -> نقل الدولة التمثيلي!
هنا هو تفسير روي فيلدينغس لمعنى نقل الدولة التمثيلي:
“يقصد نقل الدولة التمثيلي لاستحضار صورة كيف يتصرف تطبيق ويب مصممة تصميما جيدا: شبكة من صفحات الويب (ظاهري الدولة والآلة)، حيث تقدم المستخدم من خلال تطبيق من خلال تحديد الروابط (التحولات الدولة)، مما أدى إلى في الصفحة التالية (التي تمثل الدولة القادمة من التطبيق) التي يجري نقلها إلى المستخدم وتقديم لاستخدامها “.
الدافع لREST
كان الدافع لREST للقبض على خصائص الشبكة مما جعل الويب ناجحة. بعد ذلك يتم استخدام هذه الخصائص لتوجيه تطور الشبكة.
REST – نمط المعماري، ليس معيارا
REST ليست المعيار. أنت لن ترى W3C اخماد مواصفات REST. لن ترى IBM أو Microsoft أو صن بيع أدوات المطور REST ل. لماذا ا؟ لأن الباقي هو مجرد الطراز المعماري. لا يمكنك زجاجة يصل هذا النمط. هل يمكن أن نفهم فقط، وتصميم خدمات الويب الخاص بك في هذا النمط. (مشابهة لطراز معماري خدمة العملاء. لا يوجد معيار خدمة العملاء).
في حين REST ليست المعيار، فإنه معايير الاستخدام: • HTTP
• URL
• XML / HTML / GIF / JPEG / الخ (تمثيل الموارد)
• نص / XML، والنص / HTML، صورة / gif، صورة / الحياة السياسية في فرنسا، الخ (أنواع MIME)

نظام REST كلاسيكي
الشبكة هو نظام REST! كثير من هذه الخدمات ويب الذي تم استخدام هذه سنوات عديدة – خدمات الكتاب يأمر، خدمات البحث على الإنترنت الخدمات القاموس، وغيرها – هي خدمات ويب يستند إلى REST. للأسف، لقد تم استخدام REST، بناء خدمات REST وأنت لم تعرف حتى ذلك.
وتشعر REST مع “الصورة الكبيرة” على شبكة الإنترنت. أنها لا تتعامل مع تفاصيل التنفيذ (على سبيل المثال، وذلك باستخدام السيرفلتس جافا أو CGI لتنفيذ خدمة ويب). لذلك دعونا ننظر على سبيل المثال إنشاء خدمة ويب من REST “الصورة الكبيرة” المنظور.
أجزاء مستودع خدمات الويب
مستودع قطع الغيار، وشركة (شركة وهمية) ونشرت بعض الخدمات على شبكة الإنترنت لتمكين عملائها إلى: • الحصول على قائمة من أجزاء
• الحصول على معلومات مفصلة حول جزء معين
• تقديم طلب الشراء (PO)
دعونا النظر في كيفية تنفيذ كل هذه الخدمات بطريقة مريحة.
الحصول على أجزاء قائمة
خدمة الويب يجعله متاحا للURL إلى مورد قائمة أجزاء. على سبيل المثال، فإن العميل استخدام هذا URL للحصول على قائمة أجزاء:
http://www.parts-depot.com/parts

لاحظ أن “كيف” خدمة ويب يولد قائمة أجزاء غير شفافة تماما إلى العميل. كل عميل يعرف هو أنه إذا كان له / لها يقدم URL أعلاه ثم يتم إرجاع وثيقة تتضمن قائمة أجزاء. منذ تنفيذ شفاف للعملاء، أجزاء مستودع حر في تعديل تنفيذ الكامنة وراء هذا المورد دون التأثير على العملاء. هذا هو اقتران فضفاضة.
وفيما يلي الوثيقة التي يتلقاها العميل:

<?xml version=”1.0″?>
<p:Parts xmlns:p=”http://www.parts-depot.com”
xmlns:xlink=”http://www.w3.org/1999/xlink”>
<Part id=”00345″ xlink:href=”http://www.parts-depot.com/parts/00345″/>
<Part id=”00346″ xlink:href=”http://www.parts-depot.com/parts/00346″/>
<Part id=”00347″ xlink:href=”http://www.parts-depot.com/parts/00347″/>
<Part id=”00348″ xlink:href=”http://www.parts-depot.com/parts/00348″/>
</p:Parts>

[تفترض أنه من خلال التفاوض محتوى الخدمة قررت أن العميل يريد تمثيل كما XML (للتجهيز آلة إلى آلة).] لاحظ أن قائمة أجزاء لها صلات للحصول على معلومات مفصلة حول كل جزء. هذا هو سمة أساسية من سمات REST. ونقل العميل من دولة واحدة إلى أخرى عن طريق فحص واختيار من بين عناوين بديلة في الوثيقة استجابة.
الحصول على البيانات الجزء مفصل
خدمة الويب يجعله متاحا للURL إلى كل مورد جزءا منها. سبيل المثال، وهنا كيف يطلب العميل جزءا 00345:
http://www.parts-depot.com/parts/00345

وفيما يلي الوثيقة التي يتلقاها العميل:
<?xml version=”1.0″?>
<p:Part xmlns:p=”http://www.parts-depot.com”
xmlns:xlink=”http://www.w3.org/1999/xlink”>
<Part-ID>00345</Part-ID>
<Name>Widget-A</Name>
<Description>This part is used within the frap assembly</Description>
<Specification xlink:href=”http://www.parts-depot.com/parts/00345/specification”/>
<UnitCost currency=”USD”>0.10</UnitCost>
<Quantity>10</Quantity>
</p:Part>

نلاحظ مرة أخرى كيف ترتبط هذه البيانات للا يزال أكثر البيانات مواصفات لهذا الجزء ويمكن الاطلاع التي تعبر الارتباط التشعبي. يسمح لكل وثيقة استجابة العميل لأسفل للحصول على معلومات أكثر تفصيلا.
إرسال PO
خدمة الإنترنت يجعل URL المتاحة لتقديم PO. العميل بإنشاء مستند المثال PO الذي يتوافق مع المخطط PO أن أجزاء مستودع وقد وضعت (ونشرت في وثيقة WSDL). يقدم العميل PO.xml كما الحمولة وظيفة HTTP.
وتستجيب هذه الخدمة PO لمنصب HTTP مع URL إلى PO المقدمة. وهكذا، يمكن للعميل استرداد PO أي وقت بعد ذلك (لتحديث / تحريره). أصبح PO قطعة من المعلومات التي يتم مشاركتها بين العميل والخادم. يتم إعطاء المعلومات المشتركة (أ ف ب) عنوان (URL) من قبل الملقم ويتعرض كخدمة ويب.
عناوين منطقية مقابل عناوين الفيزيائية
مورد هو كيان المفاهيمي. A التمثيل هو مظهر من مظاهر ملموسة من الموارد. هذا URL:

  http://www.parts-depot.com/parts/00345

هو URL منطقي، وليس URL البدني. وبالتالي، هناك لا تحتاج إلى أن تكون، على سبيل المثال، صفحة HTML ثابتة لكل جزء. في الواقع، إذا كان هناك مليون جزء من مليون صفحات HTML ثابتة لن يكون تصميم جذاب جدا. [التفاصيل التنفيذ: أجزاء مستودع يمكن تنفيذ الخدمة التي يحصل بيانات تفصيلية عن جزء معين من خلال توظيف بريمج جافا الذي يوزع السلسلة بعد اسم المضيف، يستخدم عدد جزئيا إلى الاستعلام عن قاعدة بيانات أجزاء، وصياغة نتائج الاستعلام كما XML، و ثم العودة إلى XML كما حمولة استجابة HTTP.] على سبيل عناوين أسلوب لا ينبغي أن تكشف عن تقنية التنفيذ المستخدمة. تحتاج إلى أن يكون حرا في تغيير التطبيق الخاص بك دون التأثير على العملاء أو وجود عناوين مضللة.

خصائص خدمات الويب REST

وهنا هي خصائص REST:

  • خدمة العملاء: أسلوب التفاعل القائم على سحب: مكونات المستهلكة سحب التمثيل.
  • البدون: يجب أن يحتوي كل طلب من العميل إلى الخادم على جميع المعلومات اللازمة لفهم الطلب، ولا يمكن الاستفادة من أي سياق المخزنة على الخادم.
  • ذاكرة التخزين المؤقت: لتحسين استجابات كفاءة الشبكة يجب أن تكون قادرة على وصفها بأنها cacheable أو غير cacheable.
  • واجهة موحدة: يتم الوصول إلى جميع الموارد مع واجهة عامة (على سبيل المثال، HTTP GET، POST، PUT، DELETE).
  • الموارد اسمه – يتكون النظام من الموارد التي تتم تسمية باستخدام URL.
  • مترابطة تمثيل للموارد استخدام عناوين المواقع، وبالتالي تمكين عميل للتقدم من دولة إلى أخرى – تماثيل الموارد مترابطة.
  • مكونات الطبقات – الوسطاء، مثل خوادم بروكسي، وخوادم التخزين المؤقت، وبوابات وغيرها، ويمكن أن يدرج بين العملاء والموارد اللازمة لدعم الأداء، والأمن، الخ

مبادئ REST تصميم خدمة ويب

1. المفتاح لخلق خدمات الويب في شبكة REST (أي ويب) هو تحديد جميع الكيانات المفاهيمية التي ترغب في فضح عن الخدمات. فوق شاهدنا بعض الأمثلة من الموارد: قائمة أجزاء، جزء البيانات التفصيلية، أمر الشراء.

2. إنشاء URL إلى كل مورد. وينبغي أن تكون الموارد الأسماء، وليس الأفعال. على سبيل المثال، لا تستخدم هذا:

http://www.parts-depot.com/parts/getPart?id=00345

ملاحظة الفعل، getPart. بدلا من ذلك، استخدم اسما:

http://www.parts-depot.com/parts/00345

. تصنيف الموارد الخاصة بك وفقا لما إذا يمكن للعملاء الحصول على مجرد تمثيل للمورد، أو ما إذا كان يمكن للعملاء تعديل (إضافة إلى) المورد. بالنسبة للأولى، وجعل هذه الموارد يمكن الوصول إليها باستخدام HTTP GET. لاحقا، وجعل هذه الموارد يمكن الوصول إليها باستخدام HTTP POST، PUT، و / أو حذف. 4. جميع الموارد الوصول إليها عن طريق HTTP GET ينبغي أن تكون الآثار الجانبية مجانا. وهذا هو، يجب على المورد عودة مجرد تمثيل للمصدر. يجب استدعاء الموارد لا تؤدي إلى تعديل الموارد. 5. لا رجل / امرأة هي جزيرة. وبالمثل، ينبغي أن يكون هناك تمثيل جزيرة. وبعبارة أخرى، ووضع وصلات داخل تمثيلات الموارد لتمكين العملاء من أسفل لمزيد من المعلومات، و / أو للحصول على المعلومات ذات الصلة. 6. تصميم للكشف عن البيانات تدريجيا. لا تكشف عن كل شيء في وثيقة واحدة استجابة. توفير وصلات للحصول على مزيد من التفاصيل. 7. تحديد شكل البيانات استجابة باستخدام المخطط (DTD، W3C مخطط، RelaxNG، أو Schematron). لتلك الخدمات التي تتطلب وظيفة أو التي طرحت عليه، كما تقدم مخطط لتحديد تنسيق الاستجابة. 8. وصف كيف هي الخدمات التي تقدمها لطلبه باستخدام وثيقة واختصار، أو لمجرد وثيقة HTML.

ملخص

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

شكر وتقدير

بفضل روبرت فتويش وفيليب Eskelin على تعليقاتهم مفيدة جدا في خلق هذه الوثيقة.

Contact info

If you have any questions or suggestions please contact us:

clipartlife@gmail.com

Last Searches