论坛首页 Java企业应用论坛

自己动手写淘宝开放平台:Rop(将WebService REST进行到底!!)

浏览 100360 次
该帖已经被评为精华帖
作者 正文
   发表时间:2012-05-02   最后修改:2012-05-02
kelloKitty 写道
如果要做成可扩展性,能支持soap格式更好,客户端只能拿到服务端生成的wsdl文件自己反向生成代码去调用服务。毕竟客户端是多语言的


Rest Web Service和SOAP Web Service是两条路线,Rest Web Service就是要革SOAP Web Service的命,所以不可能支持它。
0 请登录后投票
   发表时间:2012-05-02  
stamen 写道
kelloKitty 写道
如果要做成可扩展性,能支持soap格式更好,客户端只能拿到服务端生成的wsdl文件自己反向生成代码去调用服务。毕竟客户端是多语言的


Rest Web Service和SOAP Web Service是两条路线,Rest Web Service就是要革SOAP Web Service的命,所以不可能支持它。


是的了。本来就是不同的思路啊,就是为了方便使用rest web service的服务的,支持。。
0 请登录后投票
   发表时间:2012-05-08  
正在学习楼主的《Spring3.x企业应用开发实战》。
0 请登录后投票
   发表时间:2012-05-13  
吐槽一句,你这个真的是"rest"的吗?
就我看来是典型的rpc风格的设计啊,当然淘宝的top也是混合式居多,有很多历史原因。
rpc/rest和你使用的框架和具体实现技术是无关的,本身来讲也没有高下之分,只是这个名字的确太让人费解(误解?)了。

Anyway,继续关注楼主的项目进展。
0 请登录后投票
   发表时间:2012-05-13  
貌似lz很久没更新这个项目了。
lz做的rop框架只是一个模型,牵涉到webservice的安全性,事务性,授权机制还没看到完善?
0 请登录后投票
   发表时间:2012-05-14  
response:
{"error":{"code":"1","message":"Service Currently Unavailable","solution":"Service Currently Unavailable","subErrors":[{"code":"isv.user-add-service-unavailable","message":"call the back-end service user.add thrown exception, the service is unavailable"}]}}

运行demo报错,大家帮忙看看问题出在哪里了
0 请登录后投票
   发表时间:2012-05-14  
albb0608 写道
response:
{"error":{"code":"1","message":"Service Currently Unavailable","solution":"Service Currently Unavailable","subErrors":[{"code":"isv.user-add-service-unavailable","message":"call the back-end service user.add thrown exception, the service is unavailable"}]}}

运行demo报错,大家帮忙看看问题出在哪里了


你再Pull一下,我原来请求参数故意让它错的,现在你就访问就正常了。
因为是为了演示参数错误后,Rop也会组装好一个报文返回。
0 请登录后投票
   发表时间:2012-05-14   最后修改:2012-05-14
2012-5-14 23:08:19 org.apache.catalina.startup.Catalina start
信息: Server startup in 2703 ms
2012-05-14 23:08:28,000  INFO [http-8080-Processor25] (AnnotationRopServiceRoute
r.java:296) - 扫描并注册ROP的服务方法
2012-05-14 23:08:28,000 DEBUG [http-8080-Processor25] (DefaultRopServiceMethodHa
ndlerRegistry.java:61) - 对Spring上下文中的Bean进行扫描,查找ROP服务方法: Root W
ebApplicationContext: startup date [Mon May 14 23:08:18 CST 2012]; root of conte
xt hierarchy
2012-05-14 23:08:28,015 DEBUG [http-8080-Processor25] (DefaultRopServiceMethodHa
ndlerRegistry.java:112) - 获取com.rop.sample.request.CreateUserRequest需要签名的
属性
2012-05-14 23:08:28,015 DEBUG [http-8080-Processor25] (DefaultRopServiceMethodHa
ndlerRegistry.java:128) - com.rop.sample.request.CreateUserRequest需要签名的属性
:[sign]
2012-05-14 23:08:28,015 DEBUG [http-8080-Processor25] (DefaultRopServiceMethodHa
ndlerRegistry.java:90) - 发现并注册一个BOP服务方法:com.rop.sample.UserRestServi
ce#addUser(..)
2012-05-14 23:08:28,046  INFO [http-8080-Processor25] (DefaultRopServiceMethodHa
ndlerRegistry.java:106) - 共注册了1个服务方法
2012-05-14 23:08:28,046 DEBUG [http-8080-Processor25] (AnnotationRopServiceRoute
r.java:311) - 注册错误码国际化资源:i18n/rop/ropError,i18n/rop/ropError



response:
{"error":{"code":"1","message":"Service Currently Unavailable","solution":"Service Currently Unavailable","subErrors":[{"code":"isv.user-add-service-unavailable","message":"call the back-end service user.add thrown exception, the service is unavailable"}]}}


重新pull了,感觉还是不行,明天我再单步试试吧,服务还是注册不上


0 请登录后投票
   发表时间:2012-05-15  
认证和授权是如何处理的?
0 请登录后投票
   发表时间:2012-05-15  
ivaadin 写道
认证和授权是如何处理的?


1.认证要自己处理,认证后产生一个sessionId,后续对应这个sessionId进行会话安全的管理(即通过SessionChecker进行验证)

2.基于服务开发的应用都必须分配到一个appKey和密钥对,客户端用密钥对传输的数据进行加密,这个可以保证数据传输的安全。对于appKey Rop是通过AppSecretManager类来进行安全检查的。

3.通过SecurityManager对每次请求进行安全校验,可以驳回非安全的请求;

  简单来说:
  通过AppSecretManager进行应用级的安全检查;
  通过SessionChecker进行会话级的安全检查;
  通过SecurityManager进行请求级的安全检查。

  会话的产生、如何进行appKey/密钥授权 则由应用自己处理,Rop只提供结果的控制。
  
0 请登录后投票
论坛首页 Java企业应用版

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