resfulAPI规范的简单理解 以及json与xml格式对比

resfulAPI规范的理解

  • 首先要了解什么是resfulAPI ,它其实就是个规范。为什么要用它?为了让以后接手你代码的人,能很快的看明白和接手(规范就是这个目的)。主要分为6个部分,为URI(资源路径)、HTTP动词、状态码、错误处理、过滤信息、返回结果

  • 我们以前的请求方式通常为两种 get post ,在规范中,我们又加了两种请求方式,为PUT 和DELETE ,(看图,这个属于HTTP动词
    resfulAPI规范的简单理解 以及json与xml格式对比_第1张图片

  • 在规范中,我们的传输格式必须为json格式,(返回结果,下面会介绍json格式的好处和坏处)

  • 状态码:这个大家一定很熟悉了,就是成功是200,400用户发送请求有错误,服务器错误都是5开头之类的,

  • 过滤信息,常用于排序、筛选、后端的分页吧,如果记录很多,服务器是不可能把10W条数据都返回回去的,这时候就需要API来提供参数,过滤返回结果

  • 错误处理,状态码是4开头的,返回一般用“error”作为健名,错误信息为键值“参数错误”

  • {
    “error” : " 参数错误"
    }

  • 返回结果
    GET/collections :返回资源对象的列表
    GET/collections/id :返回单个资源
    POST/collections :返回新生成的资源对象
    PUT/collections/id:返回完整的资源对象
    DELETE/collections/id:返回一个空文档

  • JSON格式为什么我们都要用(缺点是什么,面试官问到我时我很茫然)接下来我对比XML格式说明一下。

  • 这是XML格式
    resfulAPI规范的简单理解 以及json与xml格式对比_第2张图片

  • 这是json格式的表达的同一个数据
    resfulAPI规范的简单理解 以及json与xml格式对比_第3张图片

    • 直观的区别,xml格式更语义化一些,贴近我们平时的说话习惯,json更像是数据的集合
  • xml相对于json属于重量级的了(数据格式)

    • <1>.DOM
      DOM是把一个数据交换格式XML看成一个DOM对象,需要把XML文件整个读入内存,这一点上JSON和XML的原理是一样的,但是XML要考虑父节点和子节点,这一点上JSON的解析难度要小很多,因为JSON构建于两种结构:key/value,键值对的集合;值的有序集合,可理解为数组
    • <2>.SAX
      SAX不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法。程序也可以随时终止解析。这样,一个大的文档就可以逐步的、一点一点的展现出来,所以SAX适合于大规模的解析。这一点,JSON目前是做不到得。
      所以,JSON和XML的轻/重量级的区别在于:
      JSON只提供整体解析方案,而这种方法只在解析较少的数据时才能起到良好的效果;
      XML提供了对大规模数据的逐步解析方案,这种方案很适合于对大量数据的处理。
  • 关于数据格式编码解析难度

    • <1>.在编码方面。
      虽然XML和JSON都有各自的编码工具,但是JSON的编码要比XML简单,即使不借助工具,也可以写出JSON代码,但要写出好的XML代码就有点困难;与XML一样,JSON也是基于文本的,且它们都使用Unicode编码,且其与数据交换格式XML一样具有可读性。
      主观上来看,JSON更为清晰且冗余更少些。JSON网站提供了对JSON语法的严格描述,只是描述较简短。从总体来看,XML比较适合于标记文档,而JSON却更适于进行数据交换处理。
    • <2>.在解析方面。
      在普通的web应用领域,开发者经常为XML的解析伤脑筋,无论是服务器端生成或处理XML,还是客户端用 JavaScript 解析XML,都常常导致复杂的代码,极低的开发效率。
      实际上,对于大多数Web应用来说,他们根本不需要复杂的XML来传输数据,XML宣称的扩展性在此就很少具有优势,许多Ajax应用甚至直接返回HTML片段来构建动态Web页面。和返回XML并解析它相比,返回HTML片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。同XML或 HTML片段相比,数据交换格式JSON 提供了更好的简单性和灵活性。在Web Serivice应用中,至少就目前来说XML仍有不可动摇的地位。

你可能感兴趣的:(it,resfulAPI,json格式)