Restful 的简单应用

发布时间 2023-08-09 11:35:48作者: 哩子吖

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、将模型类对象转化为字典