REST简介

前言
    前段时间公司让我做个功能,需要调用第三方的接口,并要求最好使用REST API而不是SOAP API,对于SOAP还有些认识,但是对于REST API这个东东还是第一次听说,于是通过查阅资料简单了解了下REST API,然后结合第三方提供的API文档,总算对其有了简单的认识。

正题
 一、概述
    REST (REpresentational State Transfer,表述性状态转移) 。REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。
    其实REST并不是一种新兴的技术语言,也不是什么新的技术框架。准确来说说REST只是一种概念、风格或者约束,是回归HTTP本身的建议。 
    Web的几大基础技术:
  URI(统一资源标识符,用来标识资源)
  HTTP(超文本传 输/转移协议,用来操作资源)(POST\GET\PUT\DELETE)
  Hypertext(超文本,用来描述资源的内容与状态,我们可以用HTML、XML、JSON或者自定义格式的文本来描 述任何一个资源)。
  
    REST是由Roy Thomas Fieding在他的博士论文《Architectural Styles and the Design of Network-based
Software Architectures》(《架构风格与基于网络的软件架构设计》)中提出的一种架构思想。
    
    Roy Fielding是 Apache基金会的合作创作者,同时也是HTTP、URI等Web基础协议的主要设计者。从Roy Fielding的背景,我想大家就应该能了解到REST与Web之间的关系了吧。的确,在REST中我们关注技术实际上也只是URI、HTTP、Hypertext而已。 

    其实就是以Web为基础的架构而设计的一种概念、风格或者约束的一种设计模式,一种架构思想。

二、约束
Roy在他的论文中提出了一个RESTful应用应该具备的几点约束。
  1、每个资源都应该有一个唯一的标识
  2、使用标准的方法来更改资源的状态
  3、Request和Response的自描述
  4、资源多重表述
  5、无状态的服务

  Roy认为,只有具备了上面的约束的应用才能算是REST应用,其实现在好多所谓的REST应用或服务,其实并不能算是真正的REST应用。

三、小结
不管是REST还是SOAP其实都是以Web为基础,然后对于远程接口调用按照一定的规则进行了封装,只是REST相对封装的更彻底些,所以使用起来更加方便,但是凡事都有利弊,REST和SOAP各有千秋,详细的区别我们下篇继续。

你可能感兴趣的:(REST简介)