互联网金融乱弹2:互联网金融Webservice接口开发实践

互联网金融Webservice接口开发实践

1.      幂等性校验

幂等性的数学表达:f(f(x)) = f(x) 幂等性是系统接口对外的一种承诺。 

幂等性指的是,使用相同参数对同一资源重复调用某个接口的结果与调用一次的结果相同。 

而对于Webservice接口而言,幂等性的一个实现方案:

(1)      每个请求接口,要求传入一个流水号,建立操作流水表。在Webservice服务入口处,第一要判断,如果之前请求的流水号记录,处于处理中或者处理成功,那么直接return处理状态信息;如果之前请求都处理失败,那么允许后续服务处理逻辑,继续处理。

(2)      每一个资金动作都要记录流水serial,流水状态为成功,处理中,失败;后期账务对账需要用到。

(3)      建议放在AOP切面去做幂等性控制。

 

2.      校验输入参数

校验每一个必填的输入参数,如果有一个参数未填或者不符合格式要求,直接返回错误码,错误信息,记录log,直接return

 

3.      每一行代码单一职责原则以及异常处理

(1)      对于服务端健壮性而言,建议每一行代码只做一件事,即保证单一职责原则,不用或尽可能少用链式或者嵌套调用。

(2)      DAO层的单一职责:尤其是对于DAO操作和DAO层代码书写的时候,要保证每一行只做一件事,处理逻辑按一小步一小步操作。对于DAO层来说,如果查询不出值,要尽可能的返回NULL值直接return,或者抛出异常,而不是自己CATCH异常,或者让调用终止;对于增删改操作来说,要尽可能抛出异常,并记录日志,而不是自己CATCH异常。

(3)      对于SERVICE代码,要在能抛出异常的每一行分别TRY-CATCHCATCH到记录日志,roll back事务,直接return特定的错误码,以及错误信息;而不是将整个代码用一个TRY-CATCH包住,返回一个笼统的、无法辨识的错误信息;如果用到数据库链接,需要TRY-CATCH-FINNALLY,在final语句中,关闭连接。

 

你可能感兴趣的:(Web,互联网,金融,service)