【发布时间】:2020-02-28 18:59:26
【问题描述】:
我有一个 REST API,它将数据库中的数据提供给前端 React 应用程序和 Android 应用程序。
API 对每个模型都有多个公共端点:
- GET /model/<id> 检索单个对象
- POST /model 创建
- PATCH /model/<id> 更新单个模型
- GET /model 列出对象
- DELETE /model/<id> 删除对象
目前我正在开发一个 Android 应用程序,我发现这样的方案可以让我对 API 执行许多额外的请求。例如,每个 Order 对象都有一个 user_creator 条目。所以,如果我想删除指定用户创建的所有订单,我需要
1) 列出所有用户GET /user
2) 选择我需要的
3) 列出他创建的所有订单GET /order?user=user_id
4) 选择我要删除的订单
5) 删除订单DELETE /order/<id>
我想知道添加几个端点是否可以,例如GET /order/delete?user=user_id。通过这样做,我可以摆脱动作 4 和 5。所有过滤都将在后端完成。然而,在我看来,这是一个糟糕的架构解决方案,因为我之前使用的所有 API 都没有这样的方法,而且所有过滤、排序和其他“美化”的东西通常都在 API 用户端,而不是后端。
在您的回答中,请提供您认为对该问题最好的解决方案,并至少简要说明您的观点,以便我从中学习
【问题讨论】:
标签: rest model architecture request endpoint