"What is RESTful way to access resources attached to different resou" 什么是访问附加到不同资源的资源的RESTful方式

2024-04-26 09:54:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据模式看起来像

User有很多TransactionUserTransaction都是数据库中不同的表
我有REST个端点作为

用户端点

GET /users/uuid # to get information about specific user
PUT /users/uuid # update information of a specific user  

事务端点

GET /transactions/uuid # get a specific transaction
GET /transactions/user_uuid # get all transactions of a specific user
GET /transactions/user_uuid/yyyy # get all transactions of a specific user in year yyyy
GET /transactions/user_uuid/yyyy/mm # get all transactions of a specific user in year yyyy, month mm
GET /transactions/user_uuid/yyyy/mm/dd # get all transactions of a specific user in year yyyy, month mm and day dd
  • 我的问题是,既然transactions总是与User资源相连,那么为它们设置不同的端点有意义吗?你知道吗
  • 建议如何访问用户的事务?上面贴的那个?或者类似的
GET /users/uuid/transactions # all transactions for a user
GET /users/uuid/transactions/yyyy # all transactions for a user for year yyyy
GET /users/uuid/transactions/yyyy/mm # all transactions for a user for year yyyy, month mm
GET /users/uuid/transactions/yyyy/mm/dd # all transactions for a user for year yyyy, month mm and day dd

我现在不知道哪一个更好。你知道吗

谢谢


Tags: offorgetuuidall端点yearusers
1条回答
网友
1楼 · 发布于 2024-04-26 09:54:44

如果您总是在用户上下文中访问transactions,那么您的第二种方法对我来说是有意义的,因为正如您所说,用户有许多transactions,使用第一种方法,url设计可能会非常混乱,因为日期部分引用的是transactions,而不是用户资源。另一方面,如果您想读取所有用户的所有transactions,那么有两个transactions端点是有意义的

GET /transactions/ # reads all transactions for all users
GET /transactions/yyyy # reads all trasnsaction for all users with date 
GET /users/uuid/transactions # reads all transaction for a particular user
GET /users/uuid/transactions/yyyy # reads all transactions for a particular user with date        

相关问题 更多 >