سؤال

واحدة من العديد من الأشياء التي كانت تفتقر إلى من مكشطة الخدمة أن الأسبوع الماضي عناوين جميلة.الآن المستخدم المعلمة يتم تمريرها إلى البرنامج النصي مع ?u=, الذي هو عرض من أعراض كسول هاك (وهو السيناريو المسلم).ومع ذلك, لقد كنت أفكر في الإعادة و أود الحصول على بعض ردود الفعل على الخيارات المتاحة.الآن هناك نوعان من الصفحات وتحديث المخطط ، أن تقدم معلومات إلى المستخدم.وهنا اثنين من الاحتمالات التي خطرت لي."1234" هو المستخدم رقم الهوية.لأسباب فنية اسم المستخدم للأسف لا يمكن استخدامها:

  • http://< tld >/تحديث/1234
  • http://< tld >/البياني/1234

أو

  • http://< tld >/1234/تحديث
  • http://< tld >/1234/الرسم البياني

الخيار رقم 1 ، من الناحية النظرية ، هو الدعوة التحديث مع هوية المستخدم.الخيار رقم 2 هو توفير الفعل أن تعمل على هوية المستخدم.

من الاتساق نظر ، مما يجعل أكثر من معنى ؟


وثمة خيار آخر هو ذكر

  • http://< tld >/user/1234/تحديث
  • http://< tld >/user/1234/الرسم البياني

وهذا يوفر مجالا صفحات لا تتعلق مستخدم معين.أي

  • http://< tld >/احصائيات
هل كانت مفيدة؟

المحلول

سأكون بلطف يميل نحو الرائدة مع userid -- الخيار #2-منذ (ما هو موجود من) بنية الدليل هو وظيفتين مختلفتين على بيانات المستخدم.انها المستخدم في الرسم البياني المستخدم في التحديث.

انها جميلة طفيفة نقطة ، على الرغم من دون معرفة إذا كان هناك خطط كبيرة لتوسيع وظائف من هذا الشيء.

  • هو كل شيء يسير إلى الأمام سيكون وظائف إضافية فو وبار باز الفردية المستخدمين ؟ إذا الخيار #2 يحصل أكثر جاذبية للسبب المذكور أعلاه -- معرف المستخدم هو جوهر البيانات ، فإنه نوع من المنطقي أن يبدأ معها لغويا.
  • أنت ذاهب لإضافة غير يحركها المستخدم وظيفة ؟ الرائدة مع رأس الدليل قد يكون له معنى ثم -- /user/1234/تحديث /user/1234/البياني /السؤال/45678/النشاط /السؤال/45678/احصائيات, الخ.

نصائح أخرى

إذا كنت اذهب مع هذا النظام يصبح من بسيطة إلى توقف (حسن تصرف) الروبوتات من spidering موقع الويب الخاص بك:

 http://< tld >/update/1234
 http://< tld >/chart/1234

هذا هو لأنك يمكن إعداد /robots.txt ملف يحتوي على:

 Disallow /update/
 Disallow /chart/

بالنسبة لي هذا هو مكافأة لطيفة التي غالبا ما يتم تجاهله.

الخيار رقم 1 مباريات المشتركة ASP.NET MVC الأمثلة.بعض الأمثلة في نموذج عرض المراقب المالي نموذج على شكل {المراقب}/{العمل}/{id}.على .NET framework 3.5 التشغيل السريع على التوجيه لديه جدول يبين بعض سارية الطريق أنماط:

الطريق تعريف -- على سبيل المثال من مطابقة URL

{المراقب}/{العمل}/{id} -- /المنتجات/إظهار/المشروبات

{table}/تفاصيل.aspx -- /المنتجات/تفاصيل.aspx

بلوق/{العمل}/{دخول} -- /بلوق/إظهار/123

{reporttype}/{السنة}/{الشهر}/{اليوم} -- /المبيعات/2008/1/5

{لغة}/{العمل}
-- /en-US/عرض

{اللغة}-{البلد}/{العمل}
-- /en-US/عرض

أنا شخصيا أحب هذا النمط ، لأنها تحافظ على المستخدم نفسه ، ولكن يعطيك محددة بصيرة لهم.

  • http://< tld >/1234/تحديث
  • http://< tld >/1234/الرسم البياني

إذا كنت ذهبت في الاتجاه الآخر أتوقع أن تكون قادرا على رؤية كل شيء تحت /تحديث /أو الرسم البياني ثم ضيق في من قبل المستخدم.

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

لقد أجاب على السؤال "كيف يمكنك أن بنية عنوان URL الطرق؟" مع آرائي حول جعل عناوين راحة ، hackable وسهلة الاستعمال.أعتقد أنه سيكون من الأفضل أن الرابط من أن يكتب شيئا من هذا القبيل في هذا السؤال ، ومن ثم الارتباط.

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

الاتفاقية تقول كائن/الفعل/ID ، لذلك يجب أن تكون:

http://< tld >/user/تحديث/1234

(لقد لاحظت فقط أن مباريات المحدثة السؤال :)

لذا نعم, #3 هو أفضل خيار.

وهذا يدعم غير عمليات المستخدم كما ذكر (احصائيات/) ، وكذلك متعدد المستخدمين العمليات:

http://< tld >/مستخدم/قائمة/

إذا كان هناك طريقة من قائمة المستخدمين أود أن أعرض شريحة المستخدمين:

http://< tld >/users/ <--- user list
http://< tld >/users/1234/ <--- user profile, use overloaded POST on this to update.
http://< tld >/users/1234/chart/ <--- user chart

إذا كنت يمكن أن نرى فقط التفاصيل الخاصة بك ، أي المستخدمين غير مرئية لبعضها البعض, أنت لا تحتاج إلى معرف المستخدم حيث يمكنك أن نستنتج من الدورة ، في هذه الحالة:

http://< tld >/user/ <--- user profile, use overloaded POST on this to update.
http://< tld >/user/chart/ <--- user chart
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top