[Uber eats] Eater app 和服务器的API 接口设计的问题

有几个关于API接口的问题,课上没有讲,请教一下怎么设计。我的想法是用POST REST api,cart 和order 用不同节点,不知道对不对?

  1. 用户要add item 到cart。
POST /v/carts/
[{item_id, description}]
  1. 用户下单时候的api 呢?这时候怎么把carts里面选择的部分item变成order,
POST /v1/orders/create
[
{item_id,
description}
]
  1. 用户下单同时要修改order table 和 cart table (remove items)。这两者是一个transaction吗?
  2. 用户收到菜时候, 通常是courier 要complete order 。 这时候也需要一个api complete order

POST /v1/orders/complete

  1. 用户query order or cart 时候,用GET API
GET /v1/orders/
{
order_id
}
GET /v1/carts/
{
cart_id
}
  1. post 一组 item_id + 一个总的 restaurant_id; return 一个 cart_id
  2. POST /v1/orders - request body 放一个 cart_id (restful API 里不用动词)
  3. 下单是需要更新 cart table 和 order table 状态 (不是 remove cart),需要 transaction
  4. courier complete order 不是这样的。 改成 POST /v1/delivery 比较好,因为订单不止是送餐的,还有餐馆做菜,他们都需要更新状态,用分开的 API 比较好。
  5. 可以