API 一对一关系的路由设计

API routes design for One to One Relationship

我正在使用 Laravel 构建一个 API,我需要在其中使用多个 One To One 关系。对于我使用一对多的嵌套资源,我定义了这样的路由:

/api/scenarios/1/users --> return all users from a scenarios
/api/scenarios/1/users/1 --> return only the user with the id 1

应该如何定义一对一 Api 路由?提供嵌套的资源 ID 有意义吗?示例:

/api/scenarios/1/user/1

或者我可以不用id来定义它:

/api/scenarios/1/user

谢谢!

这真的取决于。如果你也有一个用户资源,你可以通过像 /api/user/1,因为现在您有两个路由来维护 return 相同的资源,并且该资源的 URI 现在不明确。

与其将这些东西视为“嵌套”资源,不如将它们视为可过滤资源。你有场景。你有用户。如果你想找到属于特定场景的用户,那么你可以简单地过滤用户资源而不是创建一个模棱两可的“子资源”:/api/users?filter[scenario]=1