今天分享我工作中涉及的金融行业API汇总和开发经验。
一、开源数据 / 开源金融
微信读者请点击“阅读原文” 访问相关连接。
- Open Data 定义
- Open Banking 定义
- 美国政府 Open Data
- 美国政府 Open Data 2
- 新加坡政府 Open Data
- 中国 Open Data
- 德国 Open Banking
- 英国 Open Banking
- 英国 Open Banking 2
- 电子现金
- 电子现金2
- 新加坡金融管理局 API Playground
- 香港金融局 Open API
- 澳洲 Open Bank
个人对于Open API或者OpenData的理解是我们普通人可以更方便的接触到原来没有机会接触到的数据,这样我们就可以发挥程序猿的本质,创造出原来没有或者比原来更好用的程序。 可以拿我的前东家,新加坡星展银行(DBS)举个例子。 DBS在去年和今年开放了100+个API给第三方程序员做开发,具体链接可以看这里。 从转账到信用卡积分兑换等等,包罗万象,极大地提升了DBS的影响力。 而且DBS也再次当选最佳数码银行。 另外这些提议的出现也孵化出了一个新的产业-FinTech(金融科技)。 这个行业的目标就在通过数字化和新的科技提高金融服务的效率,我们Silot就是这个圈子里的一个创业企业。 再进一步解释下金融科技,大家如果不是很熟悉的话,我们可以把银行比作我们自己-人,银行使用的系统比作我们的手机操作系统,现在的状况大概是大多数银行还处于诺基亚的时代,金融科技的目标就是让所有的银行都能用上iOS或者Android。
二、银行数字化进程
如果大家在银行做过技术,可能都会知道银行的技术比市面上的最新的技术可能会晚5-10年的样子。 比如说,Google很多年前已经放弃了Hadoop的技术,大多数银行可能刚开始建立Hadoop的集群。 不过这样也是有原因的,因为银行作为一个第三方信任机构,必须要保证安全和稳定,不然大家也不放心,对吧。 好处在于,很多银行现在越来越重视科技,比如JPMorgan每年在技术的投资达到数亿美元,DBS也在建立自己研发和技术中心。 大型或者中型银行可能有这个资本来投入研发,推进数字化,大多数小型银行还处于原始阶段。 比如我们公司的泰国客户Bank of Ayudhya(Krungsri),IT部门还停留在只和mainframe大型机打交道的阶段。 但是这些小一点的银行也有很多业务需求,也想使用新的技术。 这种时候,Fintech的公司就有用武之地了。 希望通过银行(不论大小)和Fintech公司的努力,能够通过数字化,开源化把金融服务的效率提得更高。
三、个人API开发经验
欢迎大家fork,star和pull request我在github上的个人练习的项目。
3.1 Spring Boot REST API文档
作为程序猿,最反感的事情可能就是写test和维护API文档了吧,这个本猿也深有体会。 所以在只用了Spring Boot来开发REST API以后,我就找了一套通过写test来生成API文档的流程,用到的工具如下:
大致的流程就是通过写controller的test来生成Spring REST Docs, 通过API document的转换工具来把Spring REST Docs转换为需要的文档格式(e.g Swagger),最后会分享个人做的一个demo app给大家。
3.2 Micro service后端交互
大多数时候,我们会有一个API Gateway放在前面把客户需要的API展示给客户,而后面会有许多小系统来完成客户不同的需求,这里有很多不同的解决方案,我这里提几个我用过和做过测试的:
个人的一些经验分享给大家,说得不正确还请大牛们指正。
- gRPC是谷歌开源的一套系统,好处在于binary data,支持HTTP 2很快,也支持多语言环境(golang,python)。 不好的地方在于,建立在protobuf之上,学习成本也不低。
- Dubbo,我个人没有用过很多,但是听到的反馈是好像社区现在不是很积极开发,我在github上面提了个问题也是没有回复。
- Lagom,如果您喜欢scala和akka,那您一定要试试Lagom。
- Spring Cloud,我们公司最后选用了Spring Cloud,原因在于Netflix出来的东西还是挺靠谱的,而且很多大公司或者银行已经用上了Cloud Foundry, Spring Cloud开发的东西会自动适应。
个人觉得选用框架不一定要选最好的,一定要选当前场景最合适的。
本文档来自支付产品技术交流群的聊天记录整理,由志愿者整理并发布到本网站。如需要及时收到来自支付产品技术交流群的最新消息,请扫码关注“凤凰牌老熊”的微信公众号。 本群面向支付行业的有经验(2年以上)的产品经理、软件工程师、架构师等,提供交流平台。如想加入本群,请在本文评论中留言(不公开),说明所在的公司、负责的工作、入群分享的主题和时间。