Rop特性及新功能(最简单的Rest Web Service框架) Spring
程序员文章站
2022-04-15 20:28:54
...
由于原来那个帖太长了,看起来不方便,因此开个新贴来讨论Rop.
Rop是参照淘宝开发平台(TOP:Taobal Open Platform)实现的全功能Rest Web Service 全功能(Full-Stack)开源框架。它解决了以下的Web Service开发问题:
1.契约优先,URL完全Rest风格
Rop(Rest Open Platfrom)是“契约优先”的Rest URL的Web Service框架,主URL固定,通过method=<methodName>参数指定调用方法,调用方法通过@ApiMethod(<methodName>)在Bean上;
2.支持JAXB注解,支持XML/JSON输入、输出
Rop的请求和响应都支持使用JAXB(JSR-222)注解,可以通过format请求指定xml或json,实现请求响应数据绑定和数据输出的完全透明化;
3.建立错误处理模型,有力降低错误处理难度
建立了一个可扩展的错误处理模型(这个主要利益于TOP的成熟模型),写Web Service一定要关注服务发生错误时如何返回响应,以便客户端据此做出相应的处理。个人认为,这是Web Service开发最关键的点之一。可以一般的Web Service开发框架由于是纯技术框架,根本没有涉及这个应用型领域的问题,因此造成了大量的甚至是混乱的Web Service开发。Rop已经建立了Web Service的错误模型,一般错误(如数据校验,签名验证,会话验证,安全控制等)Rop框架自动处理,业务错误开发者根据错误模型扩展。
使用了Rop框架,你的服务错误都可以通过响应报文描述,有力保证Web Service的开发质量和效率。
4.支持JSR 303标准校验,数据校验极致简化
请求对象只要打上JSR 303的注解,所有余下的事情(数据校验、错误输出)都由Rop完成,极大降低了Web Service开发的难度。(也许Web页面应用可以只做客户端校验,但是Web Service一定要做服务端校验,且发生错误,必须通过响应报文描述了错误)
5.组件可定制,可扩展:
既可通过RopServlet的Servlet初始化参数指定组件,也可以在Spring窗口中配置组件Bean(Rop 将自动扫描组件并装配之)。目前支持以下组件:
1)SessionChecker:会话检查组件,大多数服务方法都必须在会话环境下进行,使用该组件判断请求会话的合法性;
2)AppSecretManager:应用密钥管理组件,使用Rop开发的开放平台服务,客户端可以开发很多应用,每个应用都必须分配一个appKey,每个appKey对应一个密钥。因此服务端必须能存储并管理这个appKey/密钥对,以便在签名验证时使用。你既可以将appKey/密钥放在数据库中,也可以放到文件中,也可以放在LDAP中,只要相应实现AppSecretManager即可。
3)SecurityManager:服务安全检查组件,一个请求是否可以执行目标服务,需要很多条件,可以装配该组件以植入安全校验的逻辑。
6.支持拦截器
可以通过RopServlet的Servlet参数指定拦截器(多个逗号分隔),也可以在Spring容器中配置拦截器,Rop会自动扫描并装配。
Rop致力于打造最简单的Rest Web Service框架!!
Rop是参照淘宝开发平台(TOP:Taobal Open Platform)实现的全功能Rest Web Service 全功能(Full-Stack)开源框架。它解决了以下的Web Service开发问题:
1.契约优先,URL完全Rest风格
Rop(Rest Open Platfrom)是“契约优先”的Rest URL的Web Service框架,主URL固定,通过method=<methodName>参数指定调用方法,调用方法通过@ApiMethod(<methodName>)在Bean上;
2.支持JAXB注解,支持XML/JSON输入、输出
Rop的请求和响应都支持使用JAXB(JSR-222)注解,可以通过format请求指定xml或json,实现请求响应数据绑定和数据输出的完全透明化;
3.建立错误处理模型,有力降低错误处理难度
建立了一个可扩展的错误处理模型(这个主要利益于TOP的成熟模型),写Web Service一定要关注服务发生错误时如何返回响应,以便客户端据此做出相应的处理。个人认为,这是Web Service开发最关键的点之一。可以一般的Web Service开发框架由于是纯技术框架,根本没有涉及这个应用型领域的问题,因此造成了大量的甚至是混乱的Web Service开发。Rop已经建立了Web Service的错误模型,一般错误(如数据校验,签名验证,会话验证,安全控制等)Rop框架自动处理,业务错误开发者根据错误模型扩展。
使用了Rop框架,你的服务错误都可以通过响应报文描述,有力保证Web Service的开发质量和效率。
4.支持JSR 303标准校验,数据校验极致简化
请求对象只要打上JSR 303的注解,所有余下的事情(数据校验、错误输出)都由Rop完成,极大降低了Web Service开发的难度。(也许Web页面应用可以只做客户端校验,但是Web Service一定要做服务端校验,且发生错误,必须通过响应报文描述了错误)
5.组件可定制,可扩展:
既可通过RopServlet的Servlet初始化参数指定组件,也可以在Spring窗口中配置组件Bean(Rop 将自动扫描组件并装配之)。目前支持以下组件:
1)SessionChecker:会话检查组件,大多数服务方法都必须在会话环境下进行,使用该组件判断请求会话的合法性;
2)AppSecretManager:应用密钥管理组件,使用Rop开发的开放平台服务,客户端可以开发很多应用,每个应用都必须分配一个appKey,每个appKey对应一个密钥。因此服务端必须能存储并管理这个appKey/密钥对,以便在签名验证时使用。你既可以将appKey/密钥放在数据库中,也可以放到文件中,也可以放在LDAP中,只要相应实现AppSecretManager即可。
3)SecurityManager:服务安全检查组件,一个请求是否可以执行目标服务,需要很多条件,可以装配该组件以植入安全校验的逻辑。
6.支持拦截器
可以通过RopServlet的Servlet参数指定拦截器(多个逗号分隔),也可以在Spring容器中配置拦截器,Rop会自动扫描并装配。
Rop致力于打造最简单的Rest Web Service框架!!
上一篇: HMAC简介
下一篇: 如何用Spring读取JAR中的文件