RESTful规范

REST: 表征性状态转移(Representational State Transfer)
RESTful规范:web数据请求接口设计规范

# 规范规定了两部分:1、url链接应该怎么写 2、返回的数据格式如何写


1)通常使用https请求,而不是http请求

2)链接会出现api字眼
https://api.baidu.com
https://www.baidu.com/api

3)版本:不同版本需要标注 - 接口迭代出现多版本共存
https://api.baidu.com/v1
https://api.baidu.com/v2

4)资源:请求的目标数据称之为资源,单资源采用资源名称名词,多资源采用资源名称名词的复数
https://api.baidu.com/v2/book | https://api.baidu.com/v2/books
https://api.baidu.com/book | https://api.baidu.com/books

5)请求方式:错误示范 - get_book|add_book vs 正确示范 - book
https://api.baidu.com/get_book|add_book vs https://api.baidu.com/book

操作资源的方式的正确体现:不是通过动词,而是通过请求的方式
-- get:https://example.com/api/v1/books 获取所有
-- get:https://example.com/api/v1/book/1 获取id=1一本
-- post:https://example.com/api/v1/book 新增一本
-- put:https://example.com/api/v1/book/1 更新id=1的一本
-- patch:https://example.com/api/v1/book/1 更新id=1的一本
-- delete:https://example.com/api/v1/book/1 删除id=1的一本

6)资源过滤:通过接口传递参数来过滤资源 - limit|ordering|page
-- https://example.com/api/v1/books?limit=10 限制10条

7)数据状态码:返回数据要标准状态码,通过在数据中 {"status": 0} - 注:数据状态码都是约定的(不是死的)
-- SUCCESS("0", "查询成功")
-- NODATA("1", "非正确,无数据,显示基本信息")
-- FEAILED("2", "查询失败")

8)错误信息:请求失败需要标注错误信息 - {"error": "错误信息"} => {"msg": "数据状态描述信息"}

9)数据(操作的资源返回结果):{"results": []} | {"data": []} | {"token": "*"}

10) 子资源返回资源接口:返回的资源如果有子资源,返回子资源的链接地址,如查找书,书的封面图片就可以url表示

 

posted @ 2020-05-22 11:03  水天两色  阅读(140)  评论(0编辑  收藏  举报