Url 其余:邮政与邮政及;新建vs创建

Url 其余:邮政与邮政及;新建vs创建,url,rest,Url,Rest,在为应用程序设计URL架构时,使用哪些规则 example.com/post/或example.com/posts/查看帖子列表 example.com/post/new/或example.com/post/create/用于新帖子 example.com/posts/+example.com/post/23/或example.com/post/+example.com/post/23/查看帖子列表和详细信息 example.com/post/23或example.com/post/23/了解

在为应用程序设计URL架构时,使用哪些规则

  • example.com/post/example.com/posts/查看帖子列表
  • example.com/post/new/example.com/post/create/用于新帖子
  • example.com/posts/+example.com/post/23/example.com/post/+example.com/post/23/查看帖子列表和详细信息
  • example.com/post/23example.com/post/23/了解详细信息
  • example.com/post/edit/23/example.com/post/23/edit/进行编辑
我更喜欢:/post/用于列表,/post/23/用于详细信息,/post/23/edit/用于编辑,只需在浏览器位置栏手动使用该URL即可。我错了?请给我提个建议


谢谢。

您可能应该在创建新资源时使用HTTP POST方法。因此,对于新客户,您可以发布到example.com/customer。然后,如果您需要关于该客户的信息,请访问example.com/customer/{您最近创建的客户id}。如果您想要所有客户,请访问example.com/customer如果您想要编辑一个客户,您可能需要将其放到example.com/customer/{您的客户id}

看起来,您的基本问题是您正在处理的是在URL中指定您的操作(或动词)。你不需要那样做。与example.com/edit/23类似,您应该使用example.com/23(或example.com/customers/23)的HTTP PUT方法

请看一下有关创建RESTful资源的评论

看看POST和PUT(编辑和创建)之间的区别

对于构建更复杂的RESTful URL,我通常参考LinkedIn的nerds。我使用:

  • 获取/发布列表
  • 获取/发布/新到 获取“静态”的空HTML表单 仅站点(“ajax”站点和 “独立”客户不需要它)
  • 发布/发布用于创建('action'属性) (以前的表格)
  • GET/posts/23 详细信息(不用于编辑!)
  • 得到 /posts/23/编辑以获取填充HTML 带有隐藏“\u method=PUT”字段的表单 模拟输入浏览器
  • 放 /发布/23用于编辑('操作'属性) (以前的表格)
  • 删除/posts/23 用于删除带有 “_method=DELETE”进行模拟)
  • 职位 /posts/23用于在浏览器中模拟放置和删除

我从不使用/posts/或/posts/23/,因为这会使更改响应格式变得困难(或肮脏)。将来我可以在浏览器中使用/posts(同义词/posts.html),在xml服务中使用/posts.xml,在“ajax”数据中使用/posts.json,在smth-else中使用/posts.smth_-else:)。此外,它们可能都是静态文件(缓存或存档),以便在高负载时释放CPU和内存。

好的,谢谢。我的问题不完全是关于如何使用POST、PUT等。我只是想澄清人们是如何设计有用的URL模式的(糟糕的英语不允许解释这个问题)。但是你答案中的演示链接对我很有帮助@扎达:我在我原来的帖子上加了一点。看起来,你要处理的基本问题是,你不需要在你的URL中使用创建或编辑之类的东西。您可以通过使用不同的HTTP方法来实现这一点。+1如果动词正在潜入您的URI,那么您可能不是restful。