论坛首页 入门技术论坛

高手问答:韩陆带你深入了解Java RESTful Web Service_已结束!

浏览 17392 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-10-27   最后修改:2014-10-30
一直的理解rest 就是将原来的参数设置在 url中

比如   原来    /app/book?id=123
       rest    /app/book/123/

这种理解有什么错误?
而且感觉会不会被别人猜测出参数的意义,搞破坏?
0 请登录后投票
   发表时间:2014-10-30  
empireghost 写道
一直的理解rest 就是将原来的参数设置在 url中

比如   原来    /app/book?id=123
       rest    /app/book/123/

这种理解有什么错误?


我的理解和你是一样的.
我在项目中也使用到rest,尤其是在定义一些接口和json对象的使用时(使用spring mvc),感觉就是把传统的?后面的参数直接放到了路径中去.这样在写接口时就不用把接收参数定义死了,在调用接口时只要注意路径中的顺序就行了,这样确实比传统的使用?+参数的方式简单,但是另一方面,也把顺序固定了.
0 请登录后投票
   发表时间:2014-11-01  
hae 写道
empireghost 写道
一直的理解rest 就是将原来的参数设置在 url中

比如   原来    /app/book?id=123
       rest    /app/book/123/

这种理解有什么错误?


我的理解和你是一样的.
我在项目中也使用到rest,尤其是在定义一些接口和json对象的使用时(使用spring mvc),感觉就是把传统的?后面的参数直接放到了路径中去.这样在写接口时就不用把接收参数定义死了,在调用接口时只要注意路径中的顺序就行了,这样确实比传统的使用?+参数的方式简单,但是另一方面,也把顺序固定了.

兄弟们所指的是GET请求的查询方法,在这样的场景中,RESTful的资源和OO所暴露的接口表象上很类似,确实容易产生这样的疑问。RESTful也可以通过Query来公布接口,不仅是Path。但是,RESTful对资源定位的能力远不限于此种场景,因为RESTful是面向资源的,因此对资源定位的能力更强,有了jersey这样的底层框架,业务开发对query和path的解析就变得更简单、接口定义也就更灵活。
从统一接口角度说,RPC的写都是POST请求,而RESTful的写分为POST、PUT和DELETE。
RESTful就是要使用双方都明确知道URL的意义,清晰的URL无疑会提效。而安全上,无论你的URL是否清楚地解释了其含义,都是另一个维度、不得不做的事情。jersey提供了完整的请求-响应生命周期的过滤和拦截,从应用级可以很好地细粒度地控制资源的操作;JavaEE生态圈也提供了相关的容器级安全控制。但这和RESTful本身应该是两个角度,架构师会将启用jersey框架归类为易用性、可扩展性,而安全是可用性的一部分。
0 请登录后投票
   发表时间:2014-11-01   最后修改:2014-11-01
最近的项目也在用REST,但是关于认证这一块还有些疑问。
一般情况是我们第一次通过访问授权url,传入认证信息得到Token;
第二次发送请求,如增删改查,参数中加入Token。
现在的问题是这个Token的获取要如何实现才是安全的?
生成Token和验证Token作为一个服务独立存在?
加入Token失效时间?
请老师帮忙解惑,谢谢!
0 请登录后投票
   发表时间:2014-11-01  
CoderDream 写道
最近的项目也在用REST,但是关于认证这一块还有些疑问。
一般情况是我们第一次通过访问授权url,传入认证信息得到Token;
第二次发送请求,如增删改查,参数中加入Token。
现在的问题是这个Token的获取要如何实现才是安全的?
生成Token和验证Token作为一个服务独立存在?
加入Token失效时间?
请老师帮忙解惑,谢谢!

这个需求是RESTful应用的常见问题,一般JAVA EE的容器级安全通过加密cookie或者session实现。如果是token,典型的是OAuth协议,那么这个token生成和验证已经不在RESTful应用服务器内了。时效可以放在加密cookie中。

安全这块,我并不专业,仅供参考,共同学习哦。
0 请登录后投票
   发表时间:2014-11-02  
简单的业务可以简单区分CRUD,但是复杂的业务,比如一个请求获取10条用户照片,推荐10条新闻,获取用户档案,这种又如何识别资源命名URL呢?
0 请登录后投票
   发表时间:2014-11-02  
1、以前只知道Http方法有GET和POST,看了rest才知道总共有六种,韩工是否有关于Http方法详细的学习资料,同时个人也建议可以将Http方法作为扩展知识放入书中。

2、前段时间朋友公司webservice选型也选择了jersey(虽然他们MVC框架采用了spring mvc3),我想请教,spring mvc rest除了未遵循JAX-RS规范以外,还有什么原因不及jersey?

3、另外还有一个好奇的地方,假如资源类抛出异常,发送rest请求的客户端应该怎么处理。

rest小白一个,多多指教!
0 请登录后投票
   发表时间:2014-11-03  

REST架构对于资源的四种行为:Create(创建)、Read(读取)、Update(更新)和Delete(删除)正好对应HTTP协议提供的GET、POST、PUT和DELETE方法.
0 请登录后投票
   发表时间:2014-11-04  
这段时间比较忙,一直没有上来,还好今天还处于活动期。我对RESTful还处于一知半解,只是之前在网上查了些资料,粗知一二,正好借此机会向大神请教:

(1)RESTful有6种API,我想知道的是对于常规操作,增删改查四种就够了,为何要设计6种?
(2)Jersey帮开发者做了哪些事情,可否对其主体要素作下介绍?在试读迷你书中有看到还有CXF、RESTEasy等等,它们各有什么优缺点?大神最终选择Jersey是出于哪些考虑?
(3)RESTful与Web Service不是对立的,那么什么情况下用RESTful好,什么情况下用Web Service好,什么情况下两者可以通用?
(4)试读里有提到,现在是JAX-RS 2.X,从来没有学过这方面的内容,是否学习时可以直接从新版本入手,还是对以前版本也要一定程度的了解会更好?顺便也想知道,现有的版本是对以前版本的扩充还是有修改?
(5)试读中有提到,JAX-RS 规范并不等于REST风格本身,它们有着不同的覆盖范围。对此我不是特别理解,JAX-RS 不就是REST的JAVA实现规范吗,它们之间为何会有不同的覆盖范围?

在这方面完全是小白,期待得到本书深入学习,谢谢!
0 请登录后投票
   发表时间:2014-11-06  
看来作者比较忙啊,都没有时间来回答问题啊,很想知道上面几位大哥所提问题的解答
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics