RESTful 总结

以下链接是比较通俗易懂...可以不看本文了

REST,以及RESTful的讲解:https://blog.csdn.net/qq_21383435/article/details/80032375

如何给老婆解释什么是RESTful:https://zhuanlan.zhihu.com/p/30396391?group_id=937244108725641216

REST简介https://www.cnblogs.com/loveis715/p/4669091.html

RESTful认证机制:https://www.cnblogs.com/chinajava/p/5871305.html

一、普通http api与 RESTful api的区别

1、请求方式

一般我们设计接口 就只会使用 post 和 get 方法

restfull api 教我们设计接口的时候 一定要 适当的使用 put 和delete 方法。

2、URL写法

在Restful之前的操作:
http://127.0.0.1/user/query/1 GET  根据用户id查询用户数据
http://127.0.0.1/user/save POST 新增用户
http://127.0.0.1/user/update POST 修改用户信息
http://127.0.0.1/user/delete GET/POST 删除用户信息

RESTful用法:
http://127.0.0.1/user/1 GET  根据用户id查询用户数据
http://127.0.0.1/user  POST 新增用户
http://127.0.0.1/user  PUT 修改用户信息
http://127.0.0.1/user  DELETE 删除用户信息

3、资源获取方式

普通http api:

资源路径在前端已写死,下一步操作的信息已在html、js中写死

RESTful api:

客户只可以通过服务端所返回各结果中所包含的信息来得到下一步操作所需要的信息,如到底是向哪个URL发送请求等。也就是说,一个典型的REST服务不需要额外的文档标示通过哪些URL访问特定类型的资源,而是通过服务端返回的响应来标示到底能在该资源上执行什么样的操作

4、响应

restful使用http code代表状态,找不到资源就404...

普通的springmvc 写的 http api一般都是返回 200 ,找不到资源的时候也是返回200(在系统里查找name="张三"的一条订单),然后在响应体重带上找不到资源的提示。

5、两者关系

理论上REST架构风格并不是绑定在HTTP上,只不过目前HTTP是唯一与REST相关的实例。

http 接口 按照rest 风格设计  就是 restfull http

webservice 接口 按照rest 风格设计 就是 restfull webserivce.

 

二、什么是RESTful

1、REST

REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

REST其实是一种组织Web服务的架构,而并不是我们想象的那样是实现Web服务的一种新的技术,更没有要求一定要使用HTTP。其目标是为了创建具有良好扩展性的分布式系统。

 

REST 系统的特征

  1. 客户-服务器(Client-Server),提供服务的服务器和使用服务的客户需要被隔离对待,通过统一接口通讯。
  2. 无状态(Stateless)来自客户的每一个请求必须包含服务器处理该请求所需的所有信息。换句话说,服务器端不能存储来自某个客户的某个请求中的信息,并在该客户的其他请求中使用。
  3. 可缓存(Cachable),服务器必须让客户知道请求是否可以被缓存。以尽量减少服务端和客户端之间的信息传输,以提高性能。(Ross:更详细解释请参考 理解本真的REST架构风格 以及 StackOverflow 的这个问题 中对缓存的解释。)
  4. 分层系统(Layered System),服务器和客户之间的通信必须被这样标准化:允许服务器和客户之间的中间层(Ross:代理,网关等)可以代替服务器对客户的请求进行回应,而且这些对客户来说不需要特别支持。
  5. 统一接口(Uniform Interface),客户和服务器之间通信的方法必须是统一化的。(Ross:GET,POST,PUT.DELETE, etc)
  6. 支持按需代码(Code-On-Demand,可选),服务器可以提供一些代码或者脚本(Ross:Javascrpt,flash,etc)并在客户的运行环境中执行。这条准则是这些准则中唯一不必必须满足的一条。(Ross:比如客户可以在客户端下载脚本生成密码访问服务器。)

如果一个系统满足了上面所列出的一到五条约束,那么该系统就被称为是RESTful的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值