友好的url方案?
我上周设置的许多东西中,有一个是非常漂亮的URL。现在,用户参数被传递到带有?u=的脚本中,这是懒惰黑客的症状(脚本承认是这样的)。然而,我一直在考虑重做它,我想得到一些关于可用选项的反馈。现在有两个页面,更新和图表,为用户提供信息。以下是我提出的两种可能性。“1234”是用户ID号。由于技术原因,无法使用用户名:友好的url方案?,url,friendly-url,semantics,Url,Friendly Url,Semantics,我上周设置的许多东西中,有一个是非常漂亮的URL。现在,用户参数被传递到带有?u=的脚本中,这是懒惰黑客的症状(脚本承认是这样的)。然而,我一直在考虑重做它,我想得到一些关于可用选项的反馈。现在有两个页面,更新和图表,为用户提供信息。以下是我提出的两种可能性。“1234”是用户ID号。由于技术原因,无法使用用户名: http:///update/1234 http:///chart/1234 或 http:///1234/update http:///1234/chart 选项#1在概念
- http://
/update/1234 - http://
/chart/1234
- http://
/1234/update - http://
/1234/chart
提到的另一个选择是
- http://
/user/1234/update - http://
/user/1234/chart
- http://
/stats - http://
/1234/update - http://
/1234/chart - 对于个人用户来说,未来的一切都将是foo、bar和baz的附加功能吗?如果是这样的话,选项#2由于上述原因变得更具吸引力——用户ID是核心数据,从语义上讲,从它开始是有意义的
- 是否要添加非用户驱动的功能?以标题目录开头可能有意义--/user/1234/update、/user/1234/chart、/question/45678/activity、/question/45678/stats等等
- 我个人喜欢这种风格,因为它让用户保持不变,但让你对他们有了具体的了解
--/en US/show {语言}-{国家}/{行动}
--/en US/show从上下文的角度来看,我同意,应用程序后跟参数比项目的代理键后跟项目的上下文更有意义。最后,我会建议哪一种编程更自然。我会稍微倾向于使用userid——选项2——因为目录结构是用户数据上的两个不同函数。这是用户的图表和用户的更新 这是一个相当小的问题,虽然,不知道是否有计划的重大扩展功能的这件事
- 跟着后者走;URL应该是分层的(或者,至少,用户通过类似于本地目录路径的方式读取它们)。这里的重点是针对特定用户的不同观点,因此“用户”是更一般的概念,应该首先出现。惯例中说的是对象/动词/ID,所以应该是:
http://
http://
http://< tld >/update/1234
http://< tld >/chart/1234
对我来说,这是一个经常被忽视的好机会。如果有一种列出用户的方法,我会介绍一个用户细分:
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:///users//users/1234//users/1234/chart/实际上它与您找到的演示匹配。MVC与URL编写器无关。已更新以包含其他选项。感谢您的帮助。#1更简单,因为我使用Apache的多视图将动词转换为脚本名称。但是,如果用另一种方式引用它更有意义的话,我可以做一些事情。我不认为功能会增加很多,因为页面的目标是提供StackOverflow本身所缺乏的功能。还有一些其他脚本尚未公开,它们处理服务的总体统计信息。你的/user/1234/动词很吸引人。
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