zoukankan      html  css  js  c++  java
  • rest framework 之前

    在开始rest framework之前,我们先来了解一下什么是restful

    rest 是一种软件架构风格,Representational state Transfer

        它从资源的角度去看整个网络,通过对网络中的每个节点进行URL标识,客户端应用通过URL来获取资源的表征

        其本质是将一切数据都视为资源,这是有别于其他架构的最大区别,这个理念被称为:面向资源架构(ROA)

    下面来看看restful api的设计规范(10条)

    1 api与用户的通信协议使用https协议

    2 域名

        https://api.example.com     将api部署在域名之前,(需解决跨域问题),子域名的方式

        https://example.com/api     写在域名之后作为路径使用,简洁,url的方式

    3 版本

        https://api.example.com/v1/   在域名后面加上版本名称

        请求头                                   将需要的版本名称加入请求头里面

    4 路径 ,可以将网络上的任何东西作为资源,使用其名词(可复数)

       https://api.example.com/v1/books

        https://api.example.com/v1/employees

    5 method 方法

    GET: 从服务器上获取资源(一个或者多个)
    POST:新建一个资源
    PUT:更新资源(客户端提供改变后的完整资源)
    PATCH:更新资源的部分功能(例如改变其属性)
    DELETE:删除资源

     6 过滤,通过在url上传参的形式传递搜索条件

    https://api.example.com/v1/books?page=2&per_page=50
    上面传递的参数也可以是limit,offset,order等

    7 状态码

    状态码        说明                        其他
    200           ok                         GET      服务器成功返回用户请求的数据
    301       moved permanently          被请求的资源已永久移动到新位置
    302       Move Temporarily            请求的资源临时从不同的 URI响应请求
    400       Bad Request                    1语义有误,当前请求无法被服务器理解 2 请求参数有误。
    403    Forbidden             服务器已经理解请求,但是拒绝执行它
    404    Not Found             请求失败,请求所希望得到的资源未被在服务器上发现
    405    Method Not Allowed        请求行中指定的请求方法不能被用于请求相应的资源
    500    Internal Server Error       一般来说,这个问题都会在服务器端的源代码出现错误时出现。
    502    Bad Gateway            作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
    503    Service Unavailable        由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复

     8 错误处理,报错时返回信息,以error作为key

    {error:"XXXXXXXXXXXXXXXXXXXXXXXXX"}

    9 返回结果,根据不同的操作向用户返回不同类型的结果

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

     10 Hypermedia API,返回结果提供可以连向其他api的方法,让用户直接使用

    [
      {
        id:1,
        name:'物理',
        url:'https://www.hehe.com/1',
      },
      {
        id:2,
        name:'化学',
        url:'https://www.hehe.com/2',
      }
    ]

     其他:安装

    pip install diangorestframework
  • 相关阅读:
    用户控件的缓存技术之二【共三篇】
    .NET获取URL的各种方式及其区别
    图片上传封装类【包括图片上传和缩略图上传】.NET
    .NET抓取数据范例 抓取页面上所有的链接
    JQuery基础 学习的一些例子以及手册
    呵呵呵呵。。。系统还原了,终于可以用IE登陆百度了
    不用框架使用ajax 纯js使用ajax post,get范例及其区别
    用ashx还是aspx写ajax响应
    repeater绑定数组、哈希表、字典 ArrayList/HashTable,Dictionary为datasource
    Access数据库访问类 帮助类
  • 原文地址:https://www.cnblogs.com/mmyy-blog/p/10827471.html
Copyright © 2011-2022 走看看