什么是Restful?

1.什么是RESTful APIREST?
即Representational State Transfer的缩写。直接翻译的意思是"表现层状态转化"。
它是一种互联网应用程序的API设计理念:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

本质:一种软件架构风格
核心: 面向资源
解决问题:.降低开发的复杂性
.提高系统的可伸缩性

设计概念和准则:.网络上的所有事物都可以被抽象为资源。
.每一个资源都有唯一的资源标识,对资源的操作不会该表这些标识。
.所有的操作都是无状态的。
什么是资源?
所谓“资源”,就是网络上的一个实体,或者说是网络上的一个具体信息。

2.HTTP协议-URL
HTTP是一个属于应用层的协议,特点是简捷、快速。
schema://host[:post]/path [?qquery-string][#anchor] (方括号里面为可选参数)
(协议头) (主机名) (请求路径)

. scheme  指定低层使用的协议(例如:http,https,ftp)(协议头参数)
. host       服务器的IP地址或者域名

. port       服务器端口,默认为80(https:端口号443)
. path      访问资源的路径
. query-string  发送给http服务器的数据
. anchor   锚

3.HTTP协议-请求
组成格式:请求行、消息报头、请求正文
请求行:
格式如下:Method Request-URL HTTP-Version CRLF
举例: GET/HTTP1.1 CRLF
请求方法:
.GET :请求获取Request-URL所标识的资源
.POST 在Request-URl所标识的资源后附加新的数据
.HEAD 请求获取由Request-URL所标识的资源的响应消息报头
.PUT 请求服务器存储一个资源,并用Request-URl作为其标识
.DELETE 请求服务器删除Request-URl所标识的资源
.OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

4.HTTP协议-响应
组成 格式:状态行、消息报头 、响应正文
状态行:HTTP-Version Status-Code Reason-Phrase CRLF
HTTP/1.1 200 ok
常用状态码
.200 ok //客户端请求成功
.400 Bad Request //客户端请求有语法错误,不能被服务器所理解
.401 Unauthorized //服务器收到请求,但是拒绝提供服务
.400 Not Found //请求资源不存在
.500 Internal Server Error //服务器发生不可预期的错误
.503 Server Unavailable //服务器当前不能处理客户端的请求
5.如何设计RESTFUL API
资源路径(url),HTTP动词 ,过滤信息,状态码,错误处理,返回结果
资源路径:在RESTFUL架构中,每个网址代表一种资源,所以网址中不能有动 词,只能有名词。一般来说API中的名词应该使用复数。

HTTP动词
常用的HTTP动词有下面五个
*
GET(SELECT):从服务器取出资源(一项或多项)。
*
POST(CREATE):在服务器新建一个资源。
*
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
*
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
*
DELETE(DELETE):从服务器删除资源

例子:
*
POST /zoos:新建一个动物园
*
GET /zoos/ID:获取某个指定动物园的信息
*
PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
*
PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)
*
DELETE /zoos/ID:删除某个动物园
*
GET /zoos/ID/animals:列出某个指定动物园的所有动物
*
DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物
*

过滤信息:
例子:

* 

?limit=10:指定返回记录的数量
*
?offset=10:指定返回记录的开始位置。
*
?page=2&per_page=100:指定第几页,以及每页的记录数。
*
?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。
*
?animal_type_id=1:指定筛选条件

返回结果

* 

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值