DRF之引入

目录

一、web应用模式

【1】前后端混合开发

【2】前后端分离

二、API接口

三、接口测试工具:Postman

[四、RESTful API规范](#四、RESTful API规范)

【1】什么是RESTful

[【2】RESTful API的规范](#【2】RESTful API的规范)

[2.1 数据的安全保障](#2.1 数据的安全保障)

[2.2 接口特征表现](#2.2 接口特征表现)

[2.3 多数据版本共存](#2.3 多数据版本共存)

[2.4 数据即是资源,均使用名词(可复数)](#2.4 数据即是资源,均使用名词(可复数))

[2.5 资源操作由请求方式决定(method)](#2.5 资源操作由请求方式决定(method))

[2.6 url中带搜索或过滤条件​​​​​​​](#2.6 url中带搜索或过滤条件)

[2.7 响应状态码](#2.7 响应状态码)

[2.8 返回中带错误信息](#2.8 返回中带错误信息)

[2.9 返回结果,符合以下规范](#2.9 返回结果,符合以下规范)

[2.10 返回数据中带url链接](#2.10 返回数据中带url链接)


一、web应用模式

【1】前后端混合开发

  • 后端人员
    • 既要写后端,django
    • 又要写前端

【2】前后端分离

  • 后端人员
    • 只写后端,写一个个的API接口
  • 前端人员
    • 只写前端
  • 最后项目写完
    • 前后端联调

二、API接口

为了在团队内部形成共识、防止个人习惯差异引起的混乱,我们需要找到一种大家都觉得很好的接口实现规范,而且这种规范能够让后端写的接口,用途一目了然,减少双方之间的合作成本。

通过网络,规定了前后台信息交互规则的url链接,也就是前后台信息交互的媒介。 它称之为API接口。

前端:

  • 向后端发送请求,获取数据
  • 127.0.0.1:8080/index --->返回数据

后端:

  • 请求某个地址,返回固定的数据

Web API接口和一般的url链接还是有区别的,Web API接口简单概括有下面四大特点

  • url:长得像返回数据的url链接

  • 请求方式:get、post、put、patch、delete

    • 采用get方式请求上方接口
  • 请求参数:json或xml格式的key-value类型数据

    • ak:6E823f587c95f0148c19993539b99295
    • region:上海
    • query:肯德基
    • output:json
  • 响应结果:json或xml格式的数据

    • 上方请求参数的output参数值决定了响应数据的格式

三、接口测试工具:Postman

Postman是一款接口调试工具,是一款免费的可视化软件,同时支持各种操作系统平台,是测试接口的首选工具。

Postman可以直接从官网:https://www.getpostman.com/downloads/下载获得,然后进行傻瓜式安装。(注:需要注册一下使用或者一个Google账号也可)

  • 工作面板
  • 简易的get请求
  • 简易的post请求
  • 案例:请求百度地图接口

四、RESTful API规范

【1】什么是RESTful

REST全称是Representational State Transfer(中文意思是表征性状态转移)。 它首次出现在2000年Roy Fielding的博士论文中。

RESTful是一种定义Web API接口的设计风格,尤其适用于前后端分离的应用模式中。

【2】RESTful API的规范

2.1 数据的安全保障

  • url链接一般都采用https协议进行传输

    • https是http+ssl ---> 安全的超文本传输协议

注:采用https协议,可以提高数据交互过程中的安全性

2.2 接口特征表现

2.3 多数据版本共存

2.4 数据即是资源,均使用名词(可复数)

2.5 资源操作由请求方式决定(method)

  • 操作资源一般都会涉及到增删改查,我们提供请求方式来标识增删改查动作
    • 获取资源用get
    • 新增资源用post
    • 修改资源使用put
    • 删除资源使用delete
python 复制代码
https://api.baidu.com/books     - get请求:获取所有书

https://api.baidu.com/books/1   - get请求:获取主键为1的书

https://api.baidu.com/books     - post请求:新增一本书书

https://api.baidu.com/books/1   - put请求:整体修改主键为1的书

https://api.baidu.com/books/1   - patch请求:局部修改主键为1的书

https://api.baidu.com/books/1   - delete请求:删除主键为1的书
​

2.6 url中带搜索或过滤条件​​​​​​​

python 复制代码
https://api.example.com/v1/zoos?name=猴子   get请求

2.7 响应状态码

  • 2.7.1 正常响应
    • 响应状态码2xx
      • 200:常规请求
      • 201:创建成功
  • 2.7.2 重定向响应
    • 响应状态码3xx
      • 301:永久重定向
      • 302:暂时重定向
  • 2.7.3 客户端异常
    • 响应状态码4xx
      • 403:请求无权限
      • 404:请求路径不存在
      • 405:请求方法不存在
  • 2.7.4 服务器异常
    • 响应状态码5xx
      • 500:服务器异常

2.8 返回中带错误信息

python 复制代码
{code:100,msg:成功}
"Message": "send success",

2.9 返回结果,符合以下规范

python 复制代码
GET /collection: 返回资源对象的列表(数组)
GET /collection/resource: 返回单个资源对象
POST /collection: 返回新生成的资源对象
PUT /collection/resource: 返回完整的资源对象
PATCH /collection/resource: 返回完整的资源对象
DELETE /collection/resource:返回一个空文档

2.10 返回数据中带url链接

bash 复制代码
"url": "http://blog.sina.com.cn/zaku",
相关推荐
2401_882727572 小时前
低代码配置式组态软件-BY组态
前端·后端·物联网·低代码·前端框架
沐霜枫叶2 小时前
解决pycharm无法识别miniconda
ide·python·pycharm
途途途途2 小时前
精选9个自动化任务的Python脚本精选
数据库·python·自动化
蓝染然2 小时前
jax踩坑指南——人类早期驯服jax实录
python
许野平3 小时前
Rust: enum 和 i32 的区别和互换
python·算法·rust·enum·i32
问道飞鱼3 小时前
【Python知识】Python进阶-什么是装饰器?
开发语言·python·装饰器
追逐时光者3 小时前
.NET 在 Visual Studio 中的高效编程技巧集
后端·.net·visual studio
大梦百万秋3 小时前
Spring Boot实战:构建一个简单的RESTful API
spring boot·后端·restful
AI视觉网奇3 小时前
Detected at node ‘truediv‘ defined at (most recent call last): Node: ‘truediv‘
人工智能·python·tensorflow
GuYue.bing3 小时前
网络下载ts流媒体
开发语言·python