REST理解笔记

28 篇文章 0 订阅

来源自:http://www.itpub.net/thread-1892433-1-1.html


1.REST究竟是什么?是一种新的技术、一种新的架构、还是一种新的规范?
REST即表述性状态转移,英文全称Representational State Transfer,是Roy Fielding博士在2000年他的博士论文中提出的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
REST是一种架构风格,它既不是新技术,也不是新的规范。REST利用了HTTP协议提供的几个方法来实现了网络资源的增删改查

2.REST与传统的Web Service究竟有没有本质的区别?如果Web Service已经足够好了,为什么还会有REST?作为世界上最成功的分布式应用架构风格,它是为运行在互联网环境的分布式超媒体系统量身定制的,它究竟有哪些优势?
传统的Web Service指的是SOAP Web服务,两者的区别极大。
SOAP即Simple Object Access Protocol,它是一个协议规范,基于XML格式,而REST只是一种架构风格,采用XML或JSON等交换格式都可以。
REST简单、清晰,而SOAP则比较复杂,而且SOAP协议有很多标准的扩展协议规范,比如WS-Security、WS-Routing、WS-Referral等等。
REST很好理解,且极易上手;不过由于它缺乏标准,因此只被看作是一种架构方法。而SOAP是一个工业标准,它具备良好定义的协议,以及一套良好确立的规则,在大型和小型系统中均有采用。
企业级应用通常会考虑SOAP,而互联网应用则通常考虑用REST。

3.从架构风格的抽象高度来看,常见的分布式应用架构风格有三种:1.分布式对象(Distributed Objects,简称DO)、2.远程过程调用(Remote Procedure Call,简称RPC)、3.表述性状态转移(Representational State Transfer,简称REST);这三种风格有哪些实例?请举例说明。
分布式对象(Distributed Objects,简称DO)是早期做分布式系统采取的技术,它的实例有:微软的COM/DCOM技术,CORBA技术等。
远程过程调用(Remote Procedure Call,简称RPC),也是早期做分布式系统采取的技术,它是基于C/S模型调用的机制,客户机向服务器端发送调用请求等待服务器应答,是一种典型的请求应答机制,大致过程可以理解为本地分布式对象向本机发请求,不用自己编写底层通信本机会通过网络向服务器发送请求,服务器对象接受参数后,经过处理再把处理后的结果发送回客户端。它的实例有Sun公司的Java RMI(Remote Method Invocation)技术、EJB技术等。
表述性状态转移(Representational State Transfer,简称REST),利用HTTP协议,是目前最适合的技术。

4.在互联网中REST占据了统治地位,但在企业内网中却面临着DO和RPC的挑战,为什么?分布式对象DO与REST有哪些差别?RPC与REST有哪些不同?
1)这很正常,REST架构风格在互联网应用中得到广泛验证,但对于企业内网而言,技术还比较新。
2)现有的企业应用要改造成REST,代价太大。
3)DO和RPC太成熟了,旧的习惯主导一切。
分布式对象DO与REST的区别在于分布式对象采用专有协议,REST采用HTTP协议;分布式对象不是跨平台的,REST是跨平台的。
RPC与REST的区别:RPC以动作为中心,而REST以资源为中心;RPC是C/S架构,而REST既可以是B/S架构,也可以是C/S架构。

5.在Java 世界中,与大Web Service 相对应的规范是JAX-WS。新的规范是Java RESTful Web Service 简称JAX-RS,JAX-RS能否取代JAX-WS?
JAX-RS不太可能取代JAX-WS,至少短时间内不可能。原因很多,主要阐述两点,一是JAX-WS有自己适用的场景;二是技术是为业务服务的,用JAX-WS能搞定的事,不一定就一定要使用JAX-RS。

6.您是否使用过使用Java开发REST式的Web服务经历?请分享下个人经验。
我经常用Java开发REST服务。这几年很多项目都用到了REST服务,尤其是移动互联网应用,通过REST服务暴露接口,供Android终端、iOS终端调用
用Java开发REST服务,我用的最多的是Jersey,Apache CXF框架也用过,但它显得笨重,用Jersey更加轻量级、高效。
JBoss提供的RESTeasy框架也不错,跟Jersey差不多。
至于REST测试,可以用浏览器,或者编写使用curl命令的脚本,或者用soapui工具等,还可以用Chrome浏览器的REST Client插件等等。



REST横向比较的文章,所以搬运过来,作为个人笔记。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常抱歉,作为AI语言模型我无法为您编写完整的笔记,因为这是一个非常广泛和深入的主题。不过,我可以为您提供一些Django REST framework的基础知识和用途,希望对您有所帮助。 Django REST framework是一个基于Django的Web API开发框架,它提供了一些常用的API开发工具和功能,使得开发者可以更加便捷地创建和管理Web API。以下是Django REST framework的一些特点: 1. 提供了基于类的视图和通用视图,使得开发者可以更加快速地创建API。 2. 支持多种数据格式,包括JSON、XML等。 3. 支持基于token和OAuth2的身份认证和授权机制,保障API的安全性。 4. 提供了丰富的文档和测试工具,帮助开发者更好地管理API。 Django REST framework可以用于创建各种类型的Web API,如RESTful API、GraphQL API等。它也可以和其他常用的Python库和框架(如Django、Flask等)进行集成,提供更加全面的开发支持。 在使用Django REST framework进行API开发时,我们需要定义一些API视图,用来处理和返回API请求。同时,我们还需要定义一些序列化器,用来将模型实例转化为JSON等可序列化的数据,并将请求数据转化为模型实例。此外,我们还需要定义一些路由规则,将API视图和URL进行映射。通过这些工具,我们可以快速地创建出一个功能完善、安全可靠的Web API。 如果您想进一步学习Django REST framework的内容,可以参考官方文档,里面提供了详细的教程和示例代码,帮助您更好地理解和使用这个框架。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值