【问题标题】:Common name for Create and Update [closed]创建和更新的通用名称[关闭]
【发布时间】:2015-01-12 14:54:18
【问题描述】:

我有一个网络应用程序。我需要创建和更新一个项目,但由于这几乎是相同的代码(甚至可能是完全相同的代码),我正在为要在 url 中使用的组合操作寻找一个好名字,我完全空白的。也许是“编辑”(它会非常接近更新,但也许我正在“编辑新项目的文本”)?也许有更好的东西?

我正在使用 AngularJS。也许我应该使用相同的代码,只是使用两个不同的路由(使用相同的模板和控制器)?

【问题讨论】:

  • 你也可以使用两个不同的路由(例如/add/edit/:id)到同一个操作,但它仍然是两个操作的一个操作名称
  • 这可以作为一个答案吗?我会强烈考虑接受它:)
  • 可能是:编辑,保存

标签: angularjs model-view-controller crud


【解决方案1】:

您还可以对同一个操作使用两种不同的路由(例如/add/edit/:id),但它仍然是两个操作的操作名称:)

但如果你使用 AngularJS,你可以轻松实现 RESTful Web 服务集成,我强烈推荐它,只要你能做到。

【讨论】:

  • 这里的“item”路径是什么?也许如下?:列出所有项目:..../item/ 查看一个项目:.../item/:id 添加新项目:.../item/add 编辑现有项目:. ../item/edit/:id 列出所有项目时应该是“item”还是“items”?
  • 基于“RESTful 服务最佳实践” (s3.amazonaws.com/tfpearsonecollege/bestpractices/…) 我建议对所有路由使用复数 items。就我个人而言,我使用复数,因为这样我就可以创建一个 URI 树,但是在这个主题上存在着长期的争论......
【解决方案2】:

大多数 RESTful 标准(尤其适用于 Angular)建议使用两个端点为实体执行所有基本 CRUD 操作,并使用不同的 http 方法(POST、GET、DELETE...):

例如

POST   .../entity   Create a new entity
GET    .../entity   List of all entities

还有

PUT    .../entity/:id  Update the entity 
DELETE .../entity/:id  Delete the entity
GET    .../entity/:id  Get the details of an entity

这样您只需要两个端点,但由于 HTTP 标准方法,您仍然可以完成所有操作

编辑:

我误解了您的问题,您对用户将看到的网址更感兴趣。 在这种情况下,我会提出以下建议:

Creation form  /entity
See details    /entity/:id      (maybe even /entity/:id/name_of_entity just for the user sake but no effect on the angular routing)
Update form    /entity/:id/edit

【讨论】:

  • 我更多地考虑 Web 应用程序 url(而不是端点)。我有点希望在 url 中使用一个通用术语来表示本质上相同的代码,但我开始明白没有这样的通用名称......
  • 附带说明:您在 singluar 中有“实体”来列出所有实体。我看到有人使用复数形式:sitepoint.com/creating-crud-app-minutes-angulars-resource 在这件事上我应该按照我的感受去做吗?
  • 是的,没有什么是真正决定的。只要您在应用程序中保持一定的一致性,您就可以选择任何您想要的东西,其想法是避免通过在实体之间进行更改来混淆用户。
  • @EricC 是的,这是最受争议的观点之一:我们应该使用单数还是复数? .由于同一端点可用于操作单个对象(创建)或多个(列表),因此很难选择
猜你喜欢
  • 2018-04-24
  • 2018-12-06
  • 1970-01-01
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多