كيفية "تحميل كسول" في راحة الطريقة ؟
-
06-07-2019 - |
سؤال
وبالنظر إلى هذه الخدمة إلى الحصول على معلومات عن الفندق:
> GET /hotel/{id}
< HTTP/1.1 200 OK
< <hotel>
< <a>aaa</a>
< <b>aaa</b>
> <biggie>aaa....I am 300K</biggie >
< </hotel>
المشكلة هي أن biggie
هو 300K ونحن لا نريد العودة إلى ذلك مع كل استجابة.ما هو مريح طريقة تحميل كسول هذه القيمة ؟
يجب علينا إعداد الموارد اثنين:
> GET /hotel/{id}
< HTTP/1.1 200 OK
< <hotel>
< <a>aaa</a>
< <b>aaa</b>
< </hotel>
و..
> GET /hotel/{id}/biggie
< HTTP/1.1 200 OK
< <biggie>
< <val>aaa....I am 300K</val>
< </biggie>
و يمكنك فقط طلب GET /hotel/{id}/biggie
عندما كنت حقا بحاجة إلى أن البيانات ؟
هذا من شأنه أن يعمل..على الرغم من أن هناك شيء خاص حول biggie
إلا أن مجموعة كبيرة من البيانات.أعتقد أنه من أجمل للحفاظ على كل شيء في hotel
مستوى جميع الصفات هي في الحقيقة مجرد سمات hotel
.
المحلول
لا تنسى، والوسائط الفائقة هو صديقك.
GET /hotel/{id}
HTTP/1.1 200 OK
<hotel Id="99">
<a>aaa</a>
<b>aaa</b>
<biggieLink href="/Hotel/99/Biggie"/>
</hotel>
وأو يمكنك القيام به حتى
GET /hotel/{id}
HTTP/1.1 200 OK
<hotel Id="99">
<a>aaa</a>
<b>aaa</b>
<biggieSynopsis href="/Hotel/99/Biggie">
<title>Here is a a summary of biggie</title>
</biggieSynopsis
</hotel>
نصائح أخرى
ووضع عنه كموارد اثنين ستعمل، ولكن إذا كنت لا تحب ذلك، هل يمكن أن ننظر إلى استخدام التخزين المؤقت. اعتمادا على طبيعة البيانات، التي قد فعلا من إنقاذ لك المزيد من حمولة من تقسيم إلى موارد متعددة.
أعتقد الحل الخاص بك على ما يرام.لا يوجد إجابة نموذجية, ولكن ثلاثة احتمالات هي:
- ترسل جميع الصفات ، في كل مرة
- إرسال الصفات على حدة على النحو المطلوب (
/{id}/a
,/{id}/b
,/{id}/biggie
) - ترسل جميع الصفات ما عدا غير عادية منها ، كما توحي لك.
1 و 2 هي جميلة لأنها موحدة ، ولكن 3 المنطقي في قضيتك ، أو في الحالة التي يكون فيها قطعة واحدة من البيانات يتطلب بيانات اعتماد تسجيل الدخول ، على سبيل المثال.
(2 أيضا عيب تتطلب تشديد اقتران مع الطالب الذي لديه معرفة اسم كل سمة.)