`

对于restful的一点理解

阅读更多
(首先,我把自己的问答贴过来,不知道有没有违法。贴过来的原因是我发现我问的那个问题是个没有必要的问题。所以也关闭了问答,但为了记住这次对restful的一点理解,就给贴到了博客里,方便我以后找到。管理员别删。。谢谢)

我在javaeye发了如下的问答:

了解restful的人知道,restful有一个理念是要把一切资源化 比如一条数据库记录,一个方法,或者一个POJO,甚至一个POJO的一个属性等等。
现在不说服务器端是如何实现的,反正无非是用一些开源框架,而且,restful客户端是不管你服务器是怎么实现的,只要客户端发送标准的http请求,restful就会处理你的请求,所以说,客户端只关心服务器端能不能处理好一件事,而不管怎么处理的。
问题来了,猛一看,服务器端把所有的东西资源化,客户端只需要向服务器端发送http请求,比如服务器端暴露了一个userlist的uri,那么,客户端想增加一个用户,只用向这个uri发送一个POST请求就行了。想删除也只用发送一个DELETE请求。看起来,真的很方便啊!可惜,事实没我想象的那么爽啊。。。
最开始我很兴奋的去写了个表单。。。method些了POST,表单里给了点值,提交,没用。。。才发现,原来,http请求,说的是以下格式的这些东西:
(Request-Line) GET /firstResource/items/?name=dsa&description=dsa1 HTTP/1.1
Host localhost:8182
...
...

这就很难办了。。。因为这个请求是浏览器自己包装的,restful的框架,我用的是restlet,该框架的客户端实现是用了一个叫Client的类来封装这些http请求,也就是说,只有用这个CLient类才能向服务器发送http请求。
虽然有很多框架都能封装http请求并发送。但是,这样还是很不爽。。。因为如果要实现客户端,还必须得用到第三方的东西来发送请求,这。。。并没有很方便啊。。

铺垫了这么多。我只是想问各位,谁知道什么东西能很方便实现客户端么?


后来研究了好多例子,发现,想实现对restful的http请求,通不通过第三方无所谓,总之想偷懒是不行。因为就算用一些插件发送http请求过去,也无法解析返回的XML。必须去实现客户端,让客户端将收到的XML转换成一个POJO或者别的有意义的东西。
通过socket也好,apache的HttpClient也好,还有很多能实现的,甚至包括.net  c++都是能用来访问restful webservice的。
就像传统的SOAP webservice,想要用客户端实现,也不是个特别简单的事情一样。
暂时我理解的restful与传统webservice的区别在于,传统的service要把一个请求包装成SOAP发给服务器,服务器解开SOAP,处理,再将返回信息包装成SOAP,发给客户端,客户端再解开SOAP。。。restful只是简单的发送http请求,收到http请求,简单了很多。
分享到:
评论

相关推荐

    Restful风格服务端应用的Spring Boot + Spring Security配置

    // 对于RESTful服务,通常禁用CSRF保护 } } ``` 为了实现用户认证,我们需要集成一个用户DetailsService。Spring Security通过这个接口从数据库或其他来源获取用户信息。以下是一个简单的示例,使用内存用户: `...

    siebel restful 接口说明文档

    这一点对于理解和遵守软件的使用规则至关重要。 2. 反向工程限制 文档中提到了禁止对软件进行反向工程、拆卸或反编译,除非法律要求为了兼容性需要这么做。这说明在没有明确授权的情况下,用户不可以尝试去解构软件...

    python系统后台管理,本应用是基于tornado框架 restful风格的API 实现后台管理

    Python系统后台管理是一种常见的软件开发任务,涉及到服务器端的编程,数据处理,用户接口以及安全性等多个方面。...学习和掌握这些技术,对于提升后端开发技能和理解现代Web服务架构具有重要意义。

    什么是REST,符合REST的API叫RESTful 两种SOA接口实现:SOAP(WebService) vs REST

    例如,文件名`lj比起用问号方式传递参数,REST方式最方便之处在于--生成静态页面并缓存起来.txt`就提到了这一点。 SOA(Service-Oriented Architecture)是一种面向服务的架构风格,它将业务逻辑组织为一组可重用的...

    4基础 1:启动一个最简单的 RESTful API 服务器(1).md

    ### 启动一个最简单的RESTful API 服务器 #### 核心知识点 1. **RESTful API 服务器概念**: RESTful API 服务器是用于实现...对于初学者来说,这是一个很好的起点,能够帮助他们构建坚实的RESTful API开发基础。

    3_构建一个简单的spring-boot的RESTful Client项目.zip

    首先,我们来理解REST(Representational State Transfer,表述性状态转移)的基本概念。RESTful API设计遵循几个核心原则: 1. **资源**:每个URL代表一个资源,如/users表示用户资源。 2. **HTTP方法**:使用HTTP...

    海康摄像头

    在这个场景中,"后台一点关系没有,在js里面改动就可以"这句话揭示了海康摄像头的WEB界面可以通过JavaScript进行定制和控制。 一、海康摄像头的WEB界面 1. JavaScript基础:JavaScript是一种广泛用于网页和网络...

    放心:通过RESTful API进行简洁的可读性集成测试

    对于RESTful API,集成测试的目标是确保各个API端点能正确响应,并且与其他系统协同工作。为了实现这一点,我们可以利用各种工具和技术。 1. **测试框架**:Clojure语言中的RESTAPIClojure可能是用于本项目的一个...

    基于PHP的Niushop一点牛社区团购源码.zip

    理解RESTful API设计原则,能创建和调用API接口是重要的技能。 7. **安全性**:考虑到源码可能涉及支付和用户信息,熟悉如何防止SQL注入、XSS攻击等安全威胁,以及如何实现数据加密是必要的。 8. **缓存机制**:...

    驾考一点通APP项目.rar

    对于开发者,这个项目提供了一个从零开始的完整开发实例,可以深入理解Java后端与Android前端的协同工作,学习数据库设计与优化、API设计和移动端性能调优等技能。对于驾驶考试学员,它提供了便捷的学习工具,助力...

    springboot学习笔记

    对于RESTful API的设计,可以参考以下两个网址进行深入学习: 1. [RESTful API详解](http://www.ruanyifeng.com/blog/2014/05/restful_api.html) 2. [RESTful架构详解]...

    Jersey-2-User-Guide.pdf

    文档中提到了REST实战这本书,这是关于RESTful架构风格的一本实践指南,为Jersey的使用提供了更深层次的理解和实践技巧。 总的来说,Jersey用户指南为开发者提供了一套全面的工具和指导来构建和部署RESTful Web服务...

    物联网四大协议.pdf

    物联网四大协议指的是在物联网(IoT)中广泛使用的四种通信协议,它们分别是XMPP、MQTT、CoAP和RESTful HTTP。...安全是所有这些协议都必须重视的一点,通常需要额外的安全措施来保护物联网设备和数据。

    koa-sample-web-app-api-mysql:Koa范例应用程式(Node.js上的把手模板+使用MySQL的RESTful API)

    Koa范例应用程式(Node.js上的把手模板+使用MySQL的RESTful API) 此示例应用程序将Koa v2与async / await一起使用。 在Koa 分支上仍然可以使用Koa v1的先前版本。 这是关于如何将完整的Node.js MySQL驱动的应用程序...

    100多本前端电子书 ,有兴趣的可以下载 我也是为了赚取一点积分

    8. RESTful API和Ajax:理解如何与后端进行数据交换是前端开发者必备的技能。书籍会介绍RESTful API的设计原则和Ajax异步请求的实现。 9. 前端工作流:现代前端开发流程包括模块化、自动化和持续集成。学习者可以...

    xboot-master_springboot_

    Spring Boot是Java领域的一款热门框架,它极大地简化了Spring应用的初始...通过研究源码,可以加深对Spring Boot工作原理的理解,这对于提升Java Web开发技能大有裨益。同时,也可以从中学习到最佳实践和项目管理方法。

    基于PHP的WebIssues问题跟踪系统php版源码.zip

    理解表单提交、GET和POST请求、HTTP头以及如何处理这些请求对于分析源码至关重要。 6. **错误处理与日志记录**:在源码中,错误处理和日志记录机制确保了系统的稳定性和可维护性。学习如何在PHP中有效地捕获和记录...

    a-parent-project.zip

    标题 "a-parent-project.zip" 提供的信息表明这是一个与...对于压缩包内的"a_parent_project",我们可以期待看到Eureka源码的组织结构,包括核心组件、配置文件、测试用例等,这些都能帮助我们更好地理解和使用Eureka。

    基于REST架构的物联网数据平台设计.pdf

    接下来,文档中提到了一些关键词汇,这些词汇对于理解物联网数据平台的设计至关重要: - IoT(物联网):指的是通过各种信息传感设备,按照约定的协议,将任何物品与互联网连接起来,进行信息交换和通信,以实现智能...

    小程序源码之猎手搜索带后端源码.zip

    1. "项目问题说明.docx" - 这可能是一个文档,详细解释了项目的目标、需求、技术选型、遇到的问题以及解决方案,对于理解整个项目的背景和实现过程非常有帮助。 2. "hellspawn-hunter-weapp-master" - 这可能是一个...

Global site tag (gtag.js) - Google Analytics