rest framework-restful介绍-长期维护

beibeijia 2020-02-11

###############   django框架-rest framework    ###############

# django rest framework 框架
# 为什么学习这个rest framework?
# 1,写代码的时候会用到,前后端分离的项目,可以帮助我们快速的写api,
# 2,面试的时候会问到,

# 这个框架提供了一些什么功能?
# 1,权限组件,
# 2,认证组件
# 3,访问频率限制组件,
# 4,序列化,这个序列化是干什么的?把字符串序列化为json返回,
# 5,路由
# 6,视图,你写的rest framework继承过哪些类?这个学过了就知道了
# 7,分页
# 8,解析器,解析器干什么的?parse,vue发过来的请求,我要解析,根据头不同解析成不同的结果,
# 9,渲染器,渲染页面的,
# 10,版本,
# 这些就是序列化是用的最多的,分页也用的多,其他的比如权限这样的写一次就很少改动了,

# django rest framework安装:
# 在pycharm中的terminal中执行命令:
# pip install djangorestframework# 这是一个app,注意app的注册在settings.py中

###############   restful协议    ###############

# restful协议
# REST与技术无关,代表的是一种软件架构风格
# 所有的数据,不管是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资源是REST区别与其他架构风格的最本质属性

# 1,HTTPs协议:
#     API与用户的通信协议,总是使用HTTPs协议。https收费,但是更加的安全
# 2,域名:唯一的目的就是为了能一眼看到就是接口,可以不加,但是这是规范,
#     第一种:子域名方式
#     https://api.example.com,这一种会存在跨域,浏览器有同源策略,
#     第二种:url方式,
#     https://example.org/api/,这种便宜,
# 3,版本:
#     URL,如:https://api.example.com/v1/
#     https://example.org/api/v1/
# 4,路径:面向资源编程,写url的时候推荐使用名词,
#     https://example.org/api/v1/名词/
#     https://example.org/api/v1/order/
# 5,method,
#     GET:获取资源(一项或多项)
#     POST:新建一个资源
#     PUT:更新资源(全部更新)
#     PATCH:更新资源(局部更新)
#     DELETE:删除资源
# 6,过滤,在url加条件,通过?号
#     https://api.example.com/v1/zoos?page=2&per_page=100:指定第几页,以及每页的记录数
# 7,状态码+code:常用的状态码
#     200 OK - [GET]:服务器成功返回用户请求的数据
#     200系列表示成功
#     300系列表示重定向
#     404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作
#     400系列是客户端错误
#     500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。
#     500系列是服务端错误,
#     api需要返回状态码,但是我们通常使用code来做,因为只有状态码是不够用的,比如支付宝的状态码,可以参考看看,
#     所以需要状态码和code结合,
# 8,错误信息:
#     api一定要返回错误信息,
# 9,返回请求的结果,
#     针对不同的操作,返回不同的结果,
#     GET /order/ 返回所有的订单
#     GET /order/1/  返回单个订单
#     POST /order/  创建订单,如果前端需要,就返回创建的订单信息,不需要就不返回
#     PUT /order/1/  修改订单,全部
#     PATCH /order/1/  修改订单,局部
#     DELETE /order/1/ 删除订单
# 10,Hypermedia API,RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么

# 上面就是所有的规范,但是我们可以不遵循,需要根据业务情况来选择是否遵循,

###############  结束线   ###############

相关推荐