REST风格到底是个什么风格

restful的思想就是让url的可读性更高。

像www.xxxxx.com/user/1/2/20这样的url我觉得并不是一个良好的restful实现。

我的理解,应该是每一个参数都有明确的意义。

比如,www.xxxxx.com/user/1/page/2/pagesize/20/list.json

url中不应该出现动词,所有的动作都应该是通过不同的http请求方法来体现



说下我的理解:

前面说的那种URL风格并不是表示那就是restful。

ResultFul推荐每个URL能操作具体的资源,而且能准确描述服务器对资源的处理动作,通常服务器对资源支持get/post/put/delete/等,用来实现资源的增删改查,但是通常用浏览器访问资源都是GET,增加都是POST,而修改和删除不能正确描述

比如xxxxx/user/1,我既要能表示我要找id为1的user,我还要能表示我能删掉id为1的user;

xxxxx/user,我既要能表示添加一个user,又要能表示修改一个user;

问题是现在的浏览器只支持post/get,它根本无法让服务器知道,我到底要查找user还是要删除User,要添加还是要修改user。

所以第三方框架为了实现这种效果而做了特定的规则去模拟实现,比如spring就用了

<filter> 
  <filter-name>HiddenHttpMethodFilter</filter-name> 
  <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> 
</filter> 
这么个filter来模拟实现,以支持更多的http操作(put,delete),当我需要修改一个user的时候,只需要在<form>中加入<input type="hidden" name="_method" value="PUT">,这样提交这个表单的时候spring会知道这是要修改一个user。

具体的不想打字了,这种url风格使得项目架构清晰,好处一时说不上来,但是习惯性的使用这种风格,确实很方便。

个人理解,勿喷


restful风格,就是一种面向资源服务的API设计方式,它不是规范,不是标准,它一种设计模式。以前流行的web service服务都是面向过程,基于RPC协议的SOAP协议,对于现在或者未来,更多的人了解并且深受SOA思想影响,以面向服务为目标,而现在的SOAP虽然支持SOA,但存在很很大的差别,所以,慢慢就流行基于restful风格的web service。说简单一点,就是它纯粹面向资源,面向服务的思想,目前J2EE6的JAX-RS就是这种restful风格实现的新技术。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值