友好的URL方案?(Friendly url scheme?)

2019-07-30 04:16发布

一个一直缺乏从我这就是很多事情刮刀的服务 ,我上周成立是相当的URL。 现在用户参数被传递到与?U =脚本,这是一个懒惰的黑客(该脚本固然是)的症状。 不过,我一直在想重做它,我想获得的可用选项的一些反馈。 现在有两个网页,更新和图表,提供信息给用户。 这里是我想出了两种可能性。 “1234”是用户ID号。 出于技术原因的用户名不幸的是,不能使用:

  • HTTP:// <TLD> /更新/ 1234
  • HTTP:// <TLD> /图表/ 1234

要么

  • HTTP:// <TLD> / 1234 /更新
  • HTTP:// <TLD> / 1234 /图表

选项#1,与该用户ID在概念上,是调用更新。 选项#2提供一个动词对用户ID进行操作。

从一致性的观点来看,这更有意义?


提到的另一种选择是

  • HTTP:// <TLD> /用户/ 1234 /更新
  • HTTP:// <TLD> /用户/ 1234 /图表

这提供了空间,不与特定的用户页面。 即

  • HTTP:// <TLD> /统计

Answer 1:

选项#2 - - 因为(什么存在)的目录结构是在用户的数据两种不同的功能我会朝着与用户ID领先轻轻倾斜。 这是用户的图表,以及用户的更新。

这是一个非常小的点,不过,不知道是否有对应的这个东西的功能显著扩张计划。

  • 就是一切前进将是额外的功能foo和酒吧和巴兹为个人用户? 如果是这样,选项#2变由于上述原因更具吸引力 - 用户ID是核心数据,它种有意义的语义开始使用它。
  • 你要添加的非用户驱动的功能? 用头目录领导可能是有意义的,然后 - /用户/ 1234 /更新/用户/ 1234 /图表/问题/ 45678 /活动/问题/ 45678 /统计等。


Answer 2:

如果用这个方案去变得简单停止(乖巧)机器人蜘蛛爬行你的网站:

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

这是因为,你可以设置一个/robots.txt的文件包含:

 Disallow /update/
 Disallow /chart/

对我来说,是一个不错的奖金经常被忽视。



Answer 3:

选项#1匹配普通的ASP.NET MVC的例子。 一些在实施例模型视图控制器模型具有以下形式{控制器} / {行动} / {ID}。 在对路由.NET 3.5快速启动有显示出一些有效的路由模式的表:

路由定义-匹配URL的实施例

{控制器} / {行动} / {ID} - /产品/显示/饮料

{TABLE} /Details.aspx - /Products/Details.aspx

博客/ {行动} / {= 140598 - /博客/显示/ 123

{REPORTTYPE} / {每年} / {月} / {}天 - /销售/ 2008/1/5

{区域设置} / {动作}
- / EN-US /节目

{语言} - {国家} / {行动}
- / EN-US /节目



Answer 4:

我个人很喜欢这种风格,因为它使用户一样,但给你在给他们具体的见解。

  • HTTP:// <TLD> / 1234 /更新
  • HTTP:// <TLD> / 1234 /图表

如果你去其他的方式,我会希望能够看到在/ update或/图表一切,然后由用户缩小英寸



Answer 5:

去与后者; 网址的用意是分层的(或者,至少,用户阅读它们类推到本地目录路径的方式)。 这里的重点是在一个特定的用户的不同意见,因此“用户”是比较笼统的概念,应该首先出现。



Answer 6:

我刚才回答这个问题“你如何组织你的URL路线?” 与我有关使REST风格的URL,破解的和用户友好的意见。 我认为这将是更好的链接,而不是写在这个问题类似的东西,因此链接。



Answer 7:

我从上下文的角度同意,申请之后的参数使更多的意义,我不是一个项目之后的项目是什么背景的代理键。 最后我建议这是以往任何时候都更加自然,为您进行编程。



Answer 8:

会议指出对象/动词/ ID,所以它应该是:

HTTP:// <TLD> /用户/更新/ 1234

(我只注意到你的问题更新匹配:)

所以,是的,#3是最好的选择。

这支持非用户操作你提到(统计/),以及多用户操作:

HTTP:// <TLD> /用户/列表/



Answer 9:

如果有用户列表的方式我想介绍一个用户段:

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


文章来源: Friendly url scheme?