美文网首页
[PPJ_13] RESTful API——REST概述

[PPJ_13] RESTful API——REST概述

作者: Fighting_001 | 来源:发表于2018-10-28 22:28 被阅读20次

1.简介

REST:Representational State Transfer,表现层状态转化。REST使用HTTP、URI、XML、JSON、HTML等广泛流行的标准和协议,是Web服务的一种架构风格,轻量级跨平台和跨语言的架构设计。

2.REST原则

1)网络上的所有事物都可以被抽象为资源(Resource),如:视频、音频、图片、脚本、压缩文件...
2)每一个资源都有唯一的资源标识(Resource Identifier),对资源的操作不会改变这些标识
3)所有的操作都是无状态的

3.设计思想

REST简化开发,其架构遵循CRUD原则,该原则对于资源只需要四种行为:创建、删除、更新、获取-(增删改查),就可以完成相关的操作和处理。REST可以通过统一资源标识符(Universal Resource Identifier,URI)来识别和定位资源,且对这些资源所执行的操作是通过HTTP规范定义的。
REST的核心操作只有GET、POST、PUT、DELETE。即:URL定位资源,用HTTP动词(GET/POST/PUT/DELETE)来描述操作行为。因此,设计Web接口时,REST主要用于定义接口名(一般用名词表示,不用动词),用请求类型(GET/POST/PUT/DELETE)来区分增删改查的行为。

4.案例

设计一个用户管理系统的接口

1)若不使用RESTful风格,接口定义如下:

http://127.0.0.1/user/get_list/1   # 根服用户Id查询用户数据(GET请求)
http://127.0.0.1/user/add_user   # 新增用户信息(POST请求)
http://127.0.0.1/user/update    # 修改用户信息(PUT请求)
http://127.0.0.1/user/delete    # 删除用户信息(DELETE请求)

以上,接口的定义中包含delete、get等含义,作为从服务器获取资源的请求本身又加上类似的动词(delete/post/get/put),可能显得相对重复

2)若使用RESTful风格的接口,定义如下:

http://127.0.0.1/user/1   # 根服用户Id查询用户数据(GET请求)
http://127.0.0.1/user   # 新增用户信息(POST请求)
http://127.0.0.1/user    # 修改用户信息(PUT请求)
http://127.0.8.1/user    # 删除用户信息(DELETE请求)

以上,接口名称主要指向user资源,具体的资源操作(增删改查)则由HTTP的请求类型来定义。此时,接口名称显得统一整洁,就不需要定义不同的接口名称。遵循这样一种风格的REST接口即为RESTful风格接口(RESTful API

5.HTTP方法幂等性与安全性

HTTP方法 资源操作 幂等 安全
GET SELECT 安全
POST INSERT
PUT UPDATE
DELETE DELETE

备注:
1)幕等:对同一REST接口进行多次请求,每一次得到的资源状态都是相同的
2)安全:对某一个REST接口进行请求,不会使服务器资源状态发生改变

6.REST优势

1)提高系统的可伸缩性:
由于REST强制所有的操作都必须是无状态的,没有上下文的约束(分布式、集群操作,都不需要考虑上下文和会话保持的问题)
2)可实现前后端数据分离:
前端拿到数据只负责展示和渲染,不对数据做任何处理。后端处理数据并以JSON格式传输出去,定义这样一套统一的接口,可在Web,IOS,Android三端使用相同的接口

相关文章

网友评论

      本文标题:[PPJ_13] RESTful API——REST概述

      本文链接:https://www.haomeiwen.com/subject/xmcftqtx.html