题
一个多事情,一直缺乏自我 刮服务 我设置了最后一个星期是相当的网址。现在用户的参数是通过进入剧本 ?u=, ,这是一种症状的一个懒惰的哈克(脚本不可否认)。然而,我一直在想重做这和我想得到一些反馈意见可用的选项。现在有两个网页,更新和图表,提供给用户的信息。这里有两种可能性,我来了。"1234"是的用户标识号。由于技术原因的用户名称不幸的是无法用于:
- http://< 顶级域名>/更新/1234
- http://< 顶级域名>/图/1234
或
- http://< 顶级域名>/1234/更新
- http://< 顶级域名>/1234/图
选项1,从概念上讲,呼吁更新的用户标识。选择#2的是提供一个动词来操作上的用户标识。
从一致性的角度来看,这使得更有意义?
另一种选择提到的是
- http://< 顶级域名>/用户/1234/更新
- http://< 顶级域名>/用户/1234/图
这提供了空间,页面不与特定的用户。即
- http://< 顶级域名>/stats
解决方案
我会轻轻的倾向导致与userid--选择#2--由于(什么存在的)目录的结构是两种不同的功能用户的数据。它的用户的图表,并将用户的更新。
这是一个漂亮的小点,但是,不知道如果有计划,显着扩大的功能性的这件事情。
- 是一切都会向前将额外的职能foo和条和baz为单独的用户?如果是这样,选择#2变得更有吸引力于上述原因--的用户名是核心数据,这种有意义的开始,它在语义上.
- 你要添加非用户驱动的功能?领先一个头目录可能是有意义的然后-/用户/1234/更新/用户/1234/图表/问题/45678/活动/问题/45678/统计,等等。
其他提示
如果你去参与这种方案也变得简单停止(良好)机器人从蜘蛛爬行你的站点:
http://< tld >/update/1234
http://< tld >/chart/1234
这是因为你可以安装/robots.txt 文件载有:
Disallow /update/
Disallow /chart/
我就是一个很好的奖励,往往被忽视。
选项1相匹配的共同的ASP.NET 视的例子。一些实例 模型图控制器 模型有形式{控制器}/{行动}/{id}。的 .净3.5快速启动上路 有一个表格,显示出一些有效的路线模式:
路线的定义 --例的匹配URL
{控制器}/{行动}/{id} --/Products/show/饮料
{表}/细节。aspx --/产品的详细信息。aspx
博客/{行动}/{条} --/博客/show/123
{reporttype}/{年}/{月}/{天} --/销售/2008/1/5
{区域}/{行动}
--/en-US/显示
{语}-{的国家}/{行动}
--/en-US/显示
我个人喜欢这种风格,因为它使用户相同,但是提供的具体见解。
- http://< 顶级域名>/1234/更新
- http://< 顶级域名>/1234/图
如果你去的其他方式我希望能够看到一切都在更新和/或图表,然后窄的用户。
随后者;网址,目的是要分层(或至少用户在阅读他们的方式通过类似于当地的目录路径)。这里的重点是在不同意见的一个具体的用户,所以"用户"更一般的概念,并应首先出现。
我只是回答问题 "你怎么结构的网址的路线?" 与我的意见大约制作网址宁静,可删节和用户友好。我认为它将是最好的链接,比编写类似的东西在这个问题,因此链接。
我同意从上下文的角度来看,应用,随后通过的参数,使更多的意义上对我来说比所替代的关键项目之后通过的上下文的项目。最后,我想建议以往任何时候都更自然的你的节目。
《公约》说的对象的动词/身份证,因此它应该是:
http://< 顶级域名>/用户/更新/1234
(我只是注意到,相匹配的更新问题:)
所以,是的,#3是最好的选择。
这种支持非用户的操作因为你说(stats/),以及多用户操作:
http://< 顶级域名>/用户/list/
如果有办法的清单用户,我想介绍一个用户段:
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
如果你只能看到自己的详细信息,即用户都看不见每个其他的,你不需要用户id因为你可以推断它从本届会议,在这种情况下:
http://< tld >/user/ <--- user profile, use overloaded POST on this to update.
http://< tld >/user/chart/ <--- user chart