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方法,使得用户不查文档,也知道下一步应该做什么 # 上面就是所有的规范,但是我们可以不遵循,需要根据业务情况来选择是否遵循,
############### 结束线 ###############