正确的API设计指南

问题描述 投票:0回答:1

我在制作后端服务器之前正在设计Restful API。该服务是小型Instagram,我想知道我的宁静设计适合REST原则。

认证

  • 创建帐户:POST / auth / user
  • 删除帐户:DELETE / auth / user
  • 登录:POST / auth / session
  • 注销:DELETE / auth / session

Post

  • 加载提要:GET /帖子
  • 创建帖子:POST / posts
  • 阅读帖子:GET / posts /:post_id
  • 删除帖子:DELETE / posts /:post_id
  • 阅读评论:GET / posts /:post_id / comments
  • 创建评论:POST / posts /:post_id / comments
  • 删除评论:删除/ posts /:post_id / comments /:comment_id
  • 创建方式:POST / posts /:post_id / likes
  • 阅读次数:GET / posts /:post_id / likes
  • 删除喜欢:删除/ posts /:post_id / likes /:like_id

关注

  • 阅读以下内容:GET / followings /:user_id
  • 创建以下内容:POST / followings /:user_id
  • 删除以下内容:DELETE / followings /:user_id
  • 阅读关注者:GET /关注者/:user_id

活动

  • 阅读活动:GET /活动

搜索

  • 读取搜索:GET / filter /:search_term

探索

  • 阅读浏览:GET /相似

我是Restful API设计的新手,所以我想为我的设计提供建议或修改。原则是否合适?

rest
1个回答
0
投票

我是Restful API设计的新手,所以我想为我的设计提供建议或修改。原则是否合适?

REST不在乎您为资源标识符使用什么拼写。不管您如何设计资源。它关心的是超媒体,缓存和使用事物的标准化定义,以便我们可以使用通用组件来完成有用的工作。

GET /activities
GET /95d9f08a-fb79-4a18-a630-b2e31ad7039a

这两个URI都是fine;通用组件在两种情况下都将做正确的事情,因为计算机不关心拼写(只要您使用的拼写与RFC 3986一致)-标识符是标识符,并且机器不要尝试从中提取任何语义信息。这意味着您的服务器可以自行执行选择所需的任何拼写。用另一种方式,我们对URI的拼写大惊小怪,其原因与我们对变量名的拼写大惊小怪-使得其他人更容易相处。因此,任何内部一致的拼写约定都为

fine

,与任何为变量/函数/类命名的一致约定完全相同。使用GET进行所有读取,而POST进行所有写入,都很好-毕竟,网络是灾难性的成功。 POST有点有趣,因为您要确保您了解cache invalidation的含义。

© www.soinside.com 2019 - 2024. All rights reserved.