美文网首页
RESTful API设计实践

RESTful API设计实践

作者: 叶小然 | 来源:发表于2017-12-06 16:55 被阅读49次

说到RESTful,我相信很多人的感觉都跟我一样,“道理我都懂,有时候就是不知道怎么设计”,然后就破坏了RESTful的规范,从此设计开始崩盘。

讲道理的文章,我推荐阮一峰老师的《RESTful API 设计指南》

划重点!

1 在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。

  1. 5个动词(括号里是对应的SQL命令):
  • GET(SELECT):从服务器取出资源(一项或多项)
  • POST(CREATE):在服务器新建一个资源
  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)
  • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)
  • DELETE(DELETE):从服务器删除资源
  1. 过滤信息常见的参数
  • ?limit=10:指定返回记录的数量
  • ?offset=10:指定返回记录的开始位置
  • ?page=2&per_page=100:指定第几页,以及每页的记录数
  • ?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序
  • ?animal_type_id=1:指定筛选条件

实例:购物场景

  1. 单个资源:获取用户信息

GET http://www.example.com/members/28

  1. 资源限制:获取用户列表

GET http://www.example.com/members?limit=10&offset=0
这一类API在没有传参时,后台也应该有默认页长限制住

  1. 多个资源:获取用户(id=28)的地址列表

GET http://www.example.com/members/28/addresses

  1. 多个资源:获取用户(id=28)的地址(id=1)信息

GET http://www.example.com/members/28/addresses/1

  1. 动词:用户(id=28)收藏商品(id=16)

PUT http://www.example.com/members/28/products/16/stars

  1. 动词:用户登录

POST http://www.example.com/sessions
登录对应服务端的资源应该是session

相关文章

网友评论

      本文标题:RESTful API设计实践

      本文链接:https://www.haomeiwen.com/subject/wfhlixtx.html