سؤال

أنا أعمل على تطبيق على شبكة الإنترنت يستخدم JSON عبر تطبيق API المستند HTTP للتواصل بين الخادم والعميل. الهدف من أنه يمكن تطوير عملاء متعددين مع أهداف مختلفة (عميل الويب عبر الإنترنت، وعميل سطح المكتب دون اتصال، أو طرف ثالث تم إنشاؤه) باستخدام نفس البيانات عبر الإنترنت المراد مشاركتها من خلال خدمة الويب هذه.

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

سؤالي هو: ما مدى أهمية ذلك للحصول على API استناد HTTP يكون مريح؟ هل هي توصية، خيار، أو ضرورة قريبة؟

شكرا مقدما.

هل كانت مفيدة؟

المحلول

ك يموت الصعب restafariar أود أن أقول استخدام HTTP (بروتوكول الراحة المعني) إلى حد كامل. لماذا ا؟ حسنا، سأظل لك مقتطفين من صرف بريد إلكتروني كان لدي أمس مع صديق جيد لي ذكي بجدية (واستخدمت أن أكون أستاذا، وما زالت محاضرات، لا تزال تبدأ الحمار أينما ذهب)؛

أمس اجتازت علامة فارقة مهمة لبلدي mappodrhom
التطبيق: يمكنني الآن تشغيل حسابات الخلفية طويلة الأمد
في تجمع عامل. عند الانتهاء، يقوم العمال بنشر نتائجهم مباشرة في موارد الراحة. مما يؤدي إلى مزيد من معالجة الخلفية، كلها تسيطر عليها رسم بياني التبعية.

وجانب مثير للاهتمام هو أن هذه الخلفية المريحة هي
مستقلة فعلا عن طلبي الخاص. ولكن انا
تعبت حاليا أيضا لفهم العواقب بالكامل :-)

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

ها هو ردي، مع بعض تجاربي الخاصة؛

أعتقد أن هذا الأصوات (عفوا عن بلدي الفرنسية) f *** ing awesome! أنا أعاني من أشياء مماثلة بأشياء بقية خاصة عنها، حيث لأن الطبقة الوسطى رقيقة جدا وشفافة، يمكنني فقط تمديد الأشياء بالطريقة التي أحتاجها دون القلق أكثر من اللازم حول بنية الأشعة تحت الحمراء. إنها حرية، مثل هذا الشيء الرباعي بارد أن عقلي يدور حول الانفجار، والفضول المقلق لماذا لا يفعل ذلك أكثر؟

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

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

نصائح أخرى

ما لم تكن تستفيد من Hypermedia، فلن أزعجني محاولة تتوافق مع قيود الراحة. HyperMedia هي قطعة اللغز التي تجعل النظام أكبر من مجموع أجزائه.

أنت حر في اختيار واختيار أي من قيود الراحة التي تريد احترامها في الهندسة المعمارية الخاصة بك، فقط لاحظ أنه لتكون قادرا على استدعاء مرتاح النتيجة النهائية، فإن القيد الاختياري الوحيد هو "تنزيل رمز".

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

  1. لا واجهة برمجة تطبيقات - لا يوجد لديه أي طريقة حقيقية لاستخدامها كمكون في أنظمة موزعة أخرى
  2. الصابون - تنسيق XML لتحديد مكالمات API عن بعد
  3. JSON - تنسيق مدمج لتبادل المعلومات الذي يمكن بناؤه لإنشاء تنسيق API مخصص (أو استخدامه لبناء نظام بقية إذا كنت تريد)
  4. العديد من الأشكال الأخرى للمكالمات والإجراءات عن بعد وسائط تبادل المعلومات.

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

إنها توصية. أنا سعيد لأنك لم تذهب إلى مدى مراعاة أنك تحتاج إلى الدخول حيث يوجد شيء يسمى Hi-Rest و Lo-Rest. يمكنك الحصول على مزيد من المعلومات من googling. بعض قدامى المحاربين الذين أعرفهم لا يهتمون كثيرا بهذا، لكنني أجد البقاء بالقرب من HTML وستساعدك HTTP على المدى الطويل ويبسط العديد من الأشياء.

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

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

إلى حد بعيد أكبر مجموعة ديف هناك مجموعة .NET DEAM، ومع ADO.NET للخدمات المستهلكة (Astoria) المستهلكة باستخدام LinQ بسيط جدا وأنيق للغاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top