用户可以在应用程序/users中单独使用
获取/id GET userDetails
POST saveUserDetails
管理员可以创建事件供用户注册。
/events
发布用于更新事件的saveEvent PUT /{ event }
删除/{ event -id}删除事件
现在,问题是您会将用户放置到事件注册uri的哪个位置?
是/events/{event-id}/register吗?
或/user/{user-id}/events?event-id=xxx
我还想获得用户已注册的事件列表。
请帮助我进行更好的API设计。
发布于 2019-11-26 00:58:56
这里没有正确的答案,所以我将把我可能使用的模式放在帽子里:
POST /user - register a new user
GET /user/:id - Get user info
PUT /user/:id - Update user info
POST /event - create an event
PUT /event/:id - Update an event
GET /event/:id - Get event details
DELETE /event/:id - Delete event
GET /event/:id/attendees - Get list of attendees
POST /event/:id/attendees - Add user to list of attendees
GET /user/:id/event - Get list of events that user is attendee of发布于 2019-11-25 22:53:22
主要目标是向事件注册。那么你应该从/events开始
这就是为什么/events/{event-id}/register在我看来很好。
发布于 2019-11-25 23:13:00
您可以通过多种方法来实现这一点,但我认为最佳实践是,您应该能够从URL本身了解您想要实现的目标。
例如,Admin希望创建一个事件:
帖子:{basePath}/a/events或{basePath}/admin/events
现在用户希望注册该事件,因此
帖子:{basePath}/u/events/{eventId}或{basePath}/user/events/{eventId}
eventId来定义您需要注册的对象。现在,在上面的示例中,我假设您可以从会话中获取请求中的用户详细信息或捕获它,但是如果您不想遵循这种情况,那么您可能需要使用下面的示例(假设路径变量是获取用户上下文的唯一选项)。
帖子:{basePath}/u/{Id}/events/{eventId}或{basePath}/users/{userId}/events/{eventId}
如果您愿意,可以阅读更多关于命名指南的这里。
https://stackoverflow.com/questions/59041100
复制相似问题