• rest-framework基础入门


    一.相关概念的基本理解:

      在学习这个框架之前先要搞清楚几个概念:

      REST是一种设计风格(网络应用架构), 中文名称是表现层(表征)状态转转化,其中表现层指的是资源的表现层,

      资源呈现出来的形式称作为表现层(比如文本可以是text格式表现,也可以是html格式,json格式,XML格式).

      URI只代表资源的位置,具体表现形式, 应该在HTTP请求的头信息中用Accept和Content-Type字段指定.

      状态转化:互联网通信协议http协议协议是无状态协议,意味着所有状态都保存在服务器,如果客户端要操作服务器,必须通过某种手段,让服务器端发生状态转化,这种转化

    是建立在表现层之上的,故称做为表现层状态转化。

      在http协议里,get,post,put,delete分别对应四种基本操作(获取资源,新建资源,更新资源,删除资源)

    二.Restful架构

      六个主要特点:

      面向资源;(Rest架构设计以资源抽象核心展开)

       可寻址;(每个资源在Web上都有自己的地址)

       连通性;(每个资源非孤立的,可以通过超链接将资源关联起来)

       无状态;(Rest架构的约束,同下)

       统一接口;

       超文本驱动;(资源之间通过超链接相互关联,超链接既代表资源之间的关系,也代表可执行状态的迁移),又叫“将超媒体作为应用状态的引擎。

    三.Restful架构的优点

      1.简单性;

      对于开发,测试,运维人员来说都会很简单,可以充分利用Http服务端和客户端库,Web功能性测试工具,http缓存,http代理服务器,防火墙等。

       2.可伸缩性;

       充分利用好通信链各个位置的缓存组件,可以带来更好的可伸缩性。

       3.弱耦合;

      允许服务器端和客户端在很大范围内,相对独立地进化

    四.Restful API 设计规范

      1.协议

          API与用户通信的协议,使用https协议。

      2.域名

       尽量将API部署在专用域名之下(存在跨域的问题)

      3.版本

       应该将API的版本号放入URL

       4.路径

       定位资源的url中要用名词

      5.Http请求方法(method)

        get(从服务器取出资源,一项或多项)

       post(在服务器新建资源)

       put(在服务器更新资源(客户端提供改变后的完整资源))

       patch(在服务器更新资源(客户端提供改变的属性))

         delete(从服务器端删除资源)

         两个不常用:

          head(获取资源的元数据)

       options(获取信息,关于资源的哪些属性是客户端可以改变的)

      6.过滤信息

       在URL上传参的方式传递搜索条件

      7.状态码

       服务器向用户返回状态码和提示信息

      8.错误处理

       状态码是4xx时,返回错误信息,error当作key

      9.返回结果

       针对不同的操作,服务端向用户端返回的结果应符合以下规范:

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

       10.Hypermedia API

       RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么。

    {"link": {
      "rel":   "collection https://www.example.com/zoos",
      "href":  "https://api.example.com/zoos",
      "title": "List of zoos",
      "type":  "application/vnd.yourformat+json"
    }}

          

  • 相关阅读:
    java.sql.SQLException: Io 异常: Got minus one from a read call
    ORACLE 数据库名、实例名、ORACLE_SID的区别
    如何查看oracle的sid
    expdp impdp 数据库导入导出命令详解
    Oracle连接数过多释放机制
    oracle查看允许的最大连接数和当前连接数等信息
    世界是无限的、复杂的、运动的
    世界
    世界观和方法论是一致的,有怎样的世界观就有怎样的方法论
    运动着的物质世界是普遍联系和永恒发展的
  • 原文地址:https://www.cnblogs.com/sxh-myblogs/p/8439386.html
Copyright © 2020-2023  润新知