前言
我们在进行后台开发时,Web接口的设计都是后台的工作。但这些接口,并不是我们想怎么写就怎么写的,必须遵循一定的规范,那么现在比较流行的Web接口设计规范就是RESTful风格。所以今天就带各位实现基于RESTful风格的Web接口设计,让你的Web接口更安全、更规范。
一. RESTful架构介绍
1. RESTful架构概述
RESTful架构,是目前最流行的一种互联网软件架构风格,它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多的网站采用。
但RESTful架构到底是怎么一回事呢?
2. RESTful架构起源
REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的,Roy Thomas Fielding是一个很重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。
所以,他的这篇论文一发表,就引起了很多人的关注,并且立即对互联网开发产生了深远的影响。
Roy Thomas Fielding将他对互联网软件的架构原则,定名为REST,也就是REpresentational State Transfer(3个单词的首字母)的缩写,一般翻译为"表现层状态转化"或者是”表述性状态转移“。
3. RESTful架构含义
如果我们想理解RESTful架构风格,则需要先理解RESTful这个单词的组成。
资源(Resources):REST的名称是"表现层状态转化",其实是资源(Resources)的"表现层状态转化"。这里所谓的"资源",其实就是网络上存储的一个具体信息或数据,它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的数据。我们可以用一个URI(统一资源标识符)指向这些资源,每种资源都对应一个特定的URI。要获取这个资源,通过访问它对应的URI就可以了,因此该URI就代表了每一个资源的地址或独一无二的识别符号。
表述性(REpresentational):"资源"是一种信息实体,它可以有多种外在的表现形式,我们把"资源"具体呈现出来的形式,叫做它的"表现层"(Representation)。REST 资源实际上可以用各种形式来进行表现,比如文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现,我们可以使用最适合资源的任意形式。
状态(State):当使用 REST 的时候,我们更关注资源的状态而不是对资源采取的行为。
转义(Transfer): REST 涉及到转移资源数据,它以某种表述性形式从一个应用转移到另一个应用。
如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer),而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用