添加资源的最 RESTFul 方式是什么?

时间:2021-01-21 15:33:54

标签: api rest post get resources

例如,如果商店系统有一个 rest api 可以在不知道 id 的情况下将商品添加到我的购物车,那么设计要调用的 url 的最宁静方式是什么,服务器端实现又如何?我知道在设计 rest api 时有一些灵活性,但什么是“最先进的”?

假设我的数据库确实有“articles”、“shoppingcarts”、“article_pos”表。 文章(id,文章名称,价格,颜色), 购物车(ID,描述), article_pos(id、shoppingcart_idarticle_id

创建文章的示例:

POST "/api/shop/article/" 要求: { "article_name": "表格", "价格": "100.00", “颜色”:“棕色” }

获取现有文章的示例:

GET "/api/shop/article/4711" 回复: { "id": "4711", "article_name": "表格", "价格": "100.00", “颜色”:“棕色” }

但是如果我想将商品“4711”添加到购物车中,我应该如何设计网址?

喜欢这个? POST "/api/shop/shoppingcart/addArticle/4711?amount=1"

或者像这样? POST "/api/shop/article_pos/" 要求: { "shoppingcart_id": "1", "article_id": "4711" }

如果客户不知道 ID (4711) 但知道文章名称(表),如何获取文章 ID?

1 个答案:

答案 0 :(得分:0)

但是如果我想将文章“4711”添加到购物车中,我应该如何设计网址? POST /api/shop/shoppingcart/addArticleById/{4711}

  1. 从文章表中获取文章详细信息,获取数量。
  2. 使用这些详细信息更新购物车

如果客户不知道 ID (4711) 但知道文章名称(表),如何获取文章 ID? POST /api/shop/shoppingcart/addArticleByName/{table}

  1. 从文章表中获取文章详细信息,获取数量。
  2. 使用这些详细信息更新购物车

最先进的技术: 仅通过 ID 识别资源,并将其用于创建、更新详细信息。 REST -> 首先处理资源,因此资源是由 Id 标识的一等公民。