Restful 是一种开发理念,是一种设计风格而不是标准,是Reprentational State Transfer 的缩写,全称为具象状态传输
每个URL 代表一种资源
json 格式数据
text 文本
图片、视频等
客户端和服务器之间,传递这种资源的某种表现形式
通过请求头中 Content-Type 来指明传给服务端的参数类型
通过请求头中 Accept 来指明希望接受服务端的数据类型
客户端通过HTTP 动词,指明对服务端资源要进行的操作
get:从服务器获取资源(一项或多项)
post:从服务器新建一个资源
put:在服务器更新资源
delete:从服务器中删除资源
状态码:
200:服务器成功返回用户请求的数据
201:用户新建或者修改数据成功
204:用户删除数据成功
400:用户请求有误
401:表示用户没权限
404:用户请求路径不存在
500:服务器发生错误
常用的设计规则
URL:命名尽量用名词复数形式,往往与数据库的表名对应
过滤条件:数据量多时,需要过滤返回前端
~~:?limit=10:指定返回记录的数量
~~:?offset=10:指定返回记录的开始位置
~~:?page=2&size=10:指定第几页和每页的数据条数
~~:?sort=name:指定返回记录按哪个属性排序,以及排序顺序
域名:尽量使用专用的域名
创建一个接口的步骤
校验用户的数据
将请求的数据(如json格式)转换为模型类对象,从前端获取json 格式的数据,转化成Python 的类型,为了严谨性,这里需要做各种复杂的检验,如是否为json,传递的项目数据是否符合要求,有些必传参数是否携带等
反序列化
将其它格式(json/xml 等)转换为程序中的数据类型
将json 格式的字符串转换为 Django 中的模型类对象
操作数据库
将模型类对象转换为响应的数据(如 json 格式)
序列化
将程序中的数据类型转换为其它格式(json/xml 等)
例如将Django 中的模型类对象转换为 json 字符串
数据增删改查流程
增:校验请求参数 ---> 反序列化 ---> 保存数据 ---> 将保存的对象序列化并返回
删:判断要删除的数据是否存在 ---> 执行数据库删除
改:判断要修改的数据是否存在 ---> 检验请求参数 ---> 反序列化 ---> 保存数据 ---> 将保存的对象序列化返回
查:查询数据库 ---> 将数据序列化并返回
2、向数据库中新增项目
3、将模型类对象转化为字典,然后返回
获取一个项目详情的例子:
1、校验前端传递的pk (项目ID)值,类型是否正确(正整数),在数据库中是否存在等
2、获取指定pk值的项目
3、将模型类对象转化为字典
标签:返回,数据,---,json,应用,简单,格式,序列化,Restful From: https://www.cnblogs.com/lili37/p/17616431.html