这可能更像是一个风格问题,但我对如何最好地设计 RESTful API 感到有些困惑。
假设我想提供以下 API 调用:
- 获取/播放器
- 返回当前玩家
- 获取 /player/{id}
- 返回指定玩家
- 发布 /admin/player/{id}
- 注册指定的 Player
- 放置 /admin/player/{id}
- 更新指定的 Player
正如您可能推测的那样,最后两个需要管理权限,而前两个只需要用户登录到系统。
所以我的问题涉及如何最好地将这个 API 放入资源中。我的第一直觉是创建一个没有类级别 @Path 注释的单个 PlayerResource ,而是使用@Path("player/...")
或@Path("admin/player/...")
相应地定义每个方法。那会奏效吗?它对我来说有点味道,那么有没有更好的方法来做这种风格?我能想到的唯一选择是创建一个单独的资源类来包含仅限管理员的调用,但这对我来说也很臭,因为我有两个资源处理同一个模型类。
我只是在寻找一些关于如何最好地设计这个东西的指导。这是我的第一个 RESTful Web 应用程序,所以请原谅我可怕的无知。谢谢!