سؤال

ونظرا لهذا الخدمة:

POST /hotel HTTP/1.1

<hotel>
  <a>aaa</a>
  <b>bbb</b>
  <c>ccc</c>
</hotel>

HTTP/1.1 201 CREATED
Location: /hotel/123

وعندما ومعالجة الطلب على الخادم ونحن سوف تحقق من صحة XML hotel في الطلب ضد DTD.

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

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

المحلول

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

وقد ترغب في النظر في تخطي الاختيار التوافق التام إذا تم حذف DTD، لأنه أكثر هذا النوع من الشيء الذي يريده الناس عندما تقوم بإعداد البرنامج، ولكن لأسباب تتعلق بالأداء، قد تريد أن يكون خارج بعد أن تعرف كل شيء يعمل.

نصائح أخرى

لمعرفتي، لم يكن لديك شيء لتقوله REST على محتويات الجسم POST.

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

وأعتقد مسؤوليتك ككاتب الخدمة لقبول الطلب أم لا فإنه يشير إلى DTD، ولكن هذا هو رأيي فقط.

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