一份Service的通用接口编写!
来源:互联网 发布:qq号定位软件 编辑:程序博客网 时间:2024/06/06 04:34
写一个好的Weservice Interface,关键是要多多总结。除了有Request,Response之外,还有很多。总结如下有:
Request:webservice的输入。
Response:webservice输出。
DataRsponse:带结果集的webservice输出。
ResultData:结果集,不同的interface,其ResultData不一样。
ReslutInfo:描述调用请求成功或者失败的对象。
WebServiceTemplate:模板类,定义如何调用下层函数,如何处理异常错误的流程
ResultDataCallback:回调类,与template配合,适用【返回结果集】操作,比如【获取用户信息】,【下订单】
ResultCallback:回调类,与Template配置,适用于【不返回带结果集的接口,比如【修改用户名】
ResponseFactory:用来组装 webservice消息 的工厂类。
ResultInfoFactory:用来处理异常信息的 工厂类,这个一个接口,为它实现一个默认实例吧。
有了这些小弟们,任何webservice接口的定义都能轻易搞定,不信我举个例子给你,咱们以【加法】为例!
AddRequest:
public class AddRequest extends Request{ private int add; private int added; public int getAdd() { return add; } public void setAdd(int add) { this.add = add; } public int getAdded() { return added; } public void setAdded(int added) { this.added = added; } }
AddResonse:
public class AddResponse extends DataResponse<AddResultData>{ private AddResultData resultData; public AddResultData getResultData() { return resultData; } public void setResultData(AddResultData resultData) { this.resultData = resultData; }}
AddResultData:
public class AddResultData implements ResultData{ private int sum; public AddResultData(int sum) { super(); this.sum = sum; } public AddResultData() { super(); } public int getSum() { return sum; } public void setSum(int sum) { this.sum = sum; }}
一个简单的WebService接口:
public class Soap { public AddResponse add(final AddRequest request){ return WebServiceTemplate.doResult(new ResultDataCallback<AddRequest,AddResponse,AddResultData>(){ public AddResultData done() throws Exception { return new AddResultData(request.getAdd()+request.getAdded()); } public AddResponse getRsp() { return new AddResponse(); } }); }}
一个简单的RestCase测试:
public class TestSoap { @Test public void testAdd(){ AddRequest add = new AddRequest(); add.setAdd(1); add.setAdded(2); Soap soap = new Soap(); AddResponse rsp =soap.add(add); assertEquals(3,rsp.getResultData().getSum()); assertEquals("0",rsp.getResultInfo().getResultCode()); assertEquals("success",rsp.getResultInfo().getResultDesc()); }}
虽然这些很简单,但是能够解决80%的问题。剩下20%还要根据实际情况来定。况且,这些代码在你的手中还有持续改优化的空间。千万不要做一个爱Copy的孩子。
相关的代码附件地址:http://files.cnblogs.com/MartinChen999/webservice.rar
转载来源:http://www.cnblogs.com/MartinChen999/archive/2012/11/18/2775861.html
- 一份Service的通用接口编写!
- 如何编写一份接口文档
- Android系统设置通用接口的编写
- 通用链表接口的编写
- 给一份Webservice接口通用实现!!
- 基于SSH编写通用的DAO、Service、Action
- 基于SSH编写通用的DAO、Service、Action实现
- 通用service编写时baseDao注入问题
- 数据库的通用接口
- 25.通用service的抽取
- 通用存储过程的编写
- 通用存储过程的编写
- 通用存储过程的编写
- 一个通用Makefile的编写
- 一个通用Makefile的编写
- 一个通用Makefile的编写
- 一个通用Makefile的编写
- 一个通用Makefile的编写
- Android widget之ImageView
- springmvc拦截器
- 关于kafka中的timestamp与offset的对应关系
- SQL 中的连接查询
- org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No leas e on
- 一份Service的通用接口编写!
- MyBatis教程之六注解使用详解
- 什么?多个体多维度分析效率能从3天压缩到30分钟?
- 基于nodejs+zookeeper服务发现
- storm hook的使用
- 灵魂有香气人
- jQuery中的height(),innerHeight()和outerHeight()
- Eclipse或Myeclipse导出JAR包以及如何合并两个JAR
- 单例模式详解(解决反射反序列化问题)