1.REST介绍
REST与技术无关,它代表的是一种软件架构风格,全称Representational State Transfer,中文翻译为“表征状态转移”
REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态
1.1.RESTful API设计
当前发展前端设备(手机,电脑,平板灯)层出不穷,而后端不会说随着前端的改变而去改变自身,去对应每一个进行通信,因此我们提出来一个统一接口进行调度,才有了API的概念,RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。
同一套API接口,能使用多次
API:即所谓的接口,URL
restful规范:
1.API与用户的通信协议,总是使用HTTPs协议。
2.在自己写的URL中体现自己写的是API,将API部署在专有域名下
3.在url中体现版本共存(旧版本和新版本都能体现出)
4.路径,视网络上任何东西都是资源,均使用名词表示(可复数)
https://api.example.com/v1/animals
https://api.example.com/v1/employees
5. 方法
-get,从服务器获取资源
-post,新建资源
-put,更新资源
-patch,局部更新
-delete,删除
6.分页
https://api.example.com/v1/zoos?limit=10:指定返回记录的数量
7.状态码
8.错误信息
9.返回信息(尽量使用Json格式,避免使用xml)
10.超链接
即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么
1.2 django restframework生命周期
2.基于django实现API
基于django实现的API许多功能都需要我们自己开发,这时候django restframework就给我们提供了方便,直接基于它来返回数据,总之原理都是一样的,就是给一个接口,让前端的人去请求这个url获取数据,在页面上显示出来。这样就达到了前后端分离的效果
2.1实现流程
使用Django REST Framework 框架的序列化工具类
1.安装(注意路径,我是在虚拟环境路径下,安装时候的切到该路径):
pip install djangorestframework
2.导入(serializers/串行)
from rest_framework import serializers
3.使用
class ArticleSerializer(serializers.Serializer):
...
2.2.给前端传值的几种操作
django下创建模型,这里以这三张表来举例:
models.py
class Article(models.Model): title = models.CharField(max_length=32) # auto_now_add 第一次创建的时候把当前时间保存 create_time = models.DateField(auto_now_add=True) # auto_now每次更新的时候会把当前时间保存 update_time = models.DateField(auto_now=True) # 后期获取这两个值,通过obj.get_type_display() type = models.SmallIntegerField( choices=((1,"原创"),(2,"转载")), default=1 ) school = models.ForeignKey(to="School",on_delete=models.CASCADE) tag = models.ManyToManyField(to="Tag") class School(models.Model): name = models.CharField(max_length=32) class Tag(models.Model): name = models.CharField(max_length=32)