RESTful 资源:当资源在数据库中始终为单数时,复数与单数
RESTful resources: Plural vs. singular when a resource is always singular in the database
如果我决定为我的所有路线名称使用复数形式,但某些资源仅作为一件事存在,您是将其保留为单数形式(更直观)还是尊重使用复数形式的决定并保持这种方式?
我们在 PHP 为我们的客户门户设计了一个新的 API,我们想出了这样的东西:
/api/orders/or-a41931-0001/special-agreement/
一个订单只能有一个特殊协议(顺便说一句,没有其他类型的协议,所以我不能做 /agreements/?type=special 或类似的东西)。
如果一个订单必须正好有一个,/special-agreements/ 是典型的做法还是/special-agreement/?
更多的是基于意见的问题,但是...
据我所知,资源主要有两种类型:集合和实例。
一个集合 将是"users"。您可以访问 /users 以获取用户列表,或访问 /users/id 以获取特定用户。特定用户通常是 instance.
在这种情况下,用户众多的原因是因为它是一个集合。如果没有进一步的可能性(访问集合的实例),使用 /users 是没有意义的。
如果您要访问自己的个人资料,则您只有一个个人资料,因此您应该在 /profile 而不是 /profiles(实例而非集合)访问它
在你的例子中,只有一个协议,所以它不是集合,不需要协议ID来访问它,因此不应该是复数。
如果我决定为我的所有路线名称使用复数形式,但某些资源仅作为一件事存在,您是将其保留为单数形式(更直观)还是尊重使用复数形式的决定并保持这种方式?
我们在 PHP 为我们的客户门户设计了一个新的 API,我们想出了这样的东西:
/api/orders/or-a41931-0001/special-agreement/
一个订单只能有一个特殊协议(顺便说一句,没有其他类型的协议,所以我不能做 /agreements/?type=special 或类似的东西)。
如果一个订单必须正好有一个,/special-agreements/ 是典型的做法还是/special-agreement/?
更多的是基于意见的问题,但是...
据我所知,资源主要有两种类型:集合和实例。
一个集合 将是"users"。您可以访问 /users 以获取用户列表,或访问 /users/id 以获取特定用户。特定用户通常是 instance.
在这种情况下,用户众多的原因是因为它是一个集合。如果没有进一步的可能性(访问集合的实例),使用 /users 是没有意义的。
如果您要访问自己的个人资料,则您只有一个个人资料,因此您应该在 /profile 而不是 /profiles(实例而非集合)访问它
在你的例子中,只有一个协议,所以它不是集合,不需要协议ID来访问它,因此不应该是复数。