背景
最近做毕设时,觉得自己的代码写的非常乱,所以想要让代码简洁 RESTful规范是很重要的。
本文是截取了部分阮一峰老师的文章:http://www.ruanyifeng.com/blog/2018/10/restful-api-best-practices.html
动词+宾语
RESTful 的核心思想就是,客户端发出的数据操作指令都是"动词 + 宾语"的结构。比如,GET /articles这个命令,GET是动词,/articles是宾语
axios有五种请求方法:
GET:读
PUSH: 新建
PUT:更新
DELETE: 删除
PATCH:更新 通常是部分更新
宾语必须是名词而不是动词
比如用
axios.get('/articles'),
而不用
axios.get('/getArticles')
因为get本身就带有查这个动作的意思
复数URL
既然URL是名词,使用复数还是单数?
这没有统一的规定,但是常见的操作是读取一个集合,比如axios.get(‘articles’)(读取所有文章),这里明显应该是复数。
为了统一起见,建议都使用复数 URL,比如GET /articles/2要好于GET /article/2.
避免多级URL
常见的情况是,资源需要多级分类,因此很容易写出多级的 URL,比如获取某个作者的某一类文章。
GET /authors/12/categories/2
这种 URL 不利于扩展,语义也不明确,往往要想一会,才能明白含义。
更好的做法是,除了第一级,其他级别都用查询字符串表达。
GET /authors/12?categories=2
下面是另一个例子,查询已发布的文章。你可能会设计成下面的 URL。
GET /articles/published
查询字符串的写法明显更好。
GET /articles?published=true