سؤال

أقوم بتطوير واجهة برمجة تطبيقات RESTful بسيطة، وأنا أحب تمامًا مدى بساطتها.لكنني غير متأكد من رموز استجابة HTTP الصحيحة لمختلف المواقف:

  1. استعلام تم تشكيله بشكل غير صحيح

  2. يشير الاستعلام الذي تم تشكيله بشكل صحيح إلى مورد غير موجود

  3. تم حذف المورد بنجاح

  4. تم تحرير المورد بنجاح

أفكر حاليا أن 1 سيكون 403 Forbidden;2 سيكون 410 Gone;3 و 4 سيكون 202 Accepted.هل يبدو صحيحا؟

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

المحلول

بالنسبة للرقم 1، 403 يشير إلى أن طلبك قد فهم الطلب، لكنه لن يفي به (على سبيل المثال.المستخدم الحالي ليس لديه إذن للقيام بذلك لسبب ما).أعتقد أن 400 طلب سيئ قد يكون أكثر منطقية في هذه الحالة.

بالنسبة للرقم 2 - أعتقد أن 404 سيكون أكثر منطقية، أي.لم يتم العثور على المورد ، ما لم يكن المورد موجودًا في مرحلة ما ، ثم تم حذفه ، وفي هذه الحالة سيكون 410 عادلًا - ولكن لا يعرف الكثير من العملاء ماذا يفعلون بـ 410.

بالنسبة للرقمين 3 و4 - 200 إذا قمت بمعالجة الحذف بنجاح، 202 إذا كان الحذف في قائمة الانتظار وسيتم التعامل معه في وقت لاحق "خارج النطاق".

آر إف سي 2616 يقدم تفسيرات رائعة لما يعنيه كل رمز استجابة بعبارات مفهومة إلى حد ما.

نصائح أخرى

  1. 400
  2. 404
  3. 200
  4. 200
  5. 201 - تم إنشاء المورد بنجاح

1).400 - طلب سيء قياسي، 403 يعني أن الطلب منسق بشكل صحيح ولكن غير مسموح لك بالوصول إليه

2).404 - يشير الرقم 410 إلى أن المورد موجود بالفعل ولكن تم نقله عمدًا

3).و 4).200 إذا تم الإجراء بنجاح بحلول وقت إرسال الرد، و202 إذا كان الإجراء معلقًا.في الممارسة العملية، من المحتمل أن يكون 202 لإجراءات الحذف (حيث قد تخضع للمراجعة) ولكن قد ترغب أو لا ترغب في إرجاع 200 على الفور على أي حال بحيث يبدو محذوفًا بالفعل للمستخدم.هذا سؤال التصميم إيمهو.

احصل على كتاب ريتشاردسون وروبي - يحتوي على ملحق مفيد لسؤالك ويلزم قراءته في كلتا الحالتين

لماذا لا تستخدم المعيار رموز استجابة http .سوف تحصل على جميع التحسينات (على سبيل المثال، 303، 304)/ البنية التحتية الموضوعة لـ http مجانًا.

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