云服务平台第一批云API上线,内含Demo

宁波团队的云API平台主要为公司提供数据提取服务和推送服务,并包含了一些项目中常用的微服务,API并不是很多,如果您对其他API有需求,可及时联系我们扩展;

项目背景

我们团队负责着公司很多大小项目,并为其他团队提供基础数据服务;

提供基础数据方面,以往,其他团队如果需要用哪部分数据,通过邮件申请,我们将数据同步到生产中心和上海开发中心,我们以数据库同步的方式将数据同步到异地数据库,这种方法久而久之,我发现有以下几个缺点:

由于只实时同步到数据库,各个团队对于自己关心的数据变化只能自己通过扫描表实现,费时费力也不实时;

我无法得知哪些团队使用哪些数据,除了去邮件翻阅查找,况且有些团队临时使用数据没法邮件;

我无法得知哪些团队的哪些数据已不再使用;

我无法统计数据使用频率;

提供公共服务方面,由于我们负责维护着公司几十个项目,其中涉及到很多模块是公用的,比如发手机短信,提取债券基础信息,提取节假日信息,提取宏观指标,中文分词等,以前大多采用项目多数据源形式,但其实某些数据源可能只是用到其中一两个表的查询服务,那么,为什么我们不直接以安全的API方式,提供给所有项目使用呢?

基于以上两个主要考量因素,我想设计实现一套云API服务,解决上述两个问题,并为以后的项目打下基础;

云平台使用

在使用上,很简单,登录:

云API类型和使用

云平台的API分两种,和;

以的形式提供,你可以使用任何语言调用这些API(但提交的参数信息必须经过验签,防止API被外部恶意调用);

以或的形式提供,当您订阅的推送API发生时,可以及时调用您的地址或你自己去侦听连接,都可以拿到实时数据,推送的API提供三种推送模式,会在推送服务的提供者定义中指定:,和;

拉取API调用示例

以语言为例,其他语言类似:

注:在代码的可以发现,传给云API的参数必须经过验签,请确保您的和准确才能成功调用API;

推送API调用示例

HTML版接收推送消息:

Java版接收推送消息:

其他语言都提供了对应语言的客户端实现,具体请参看:https://github.com/sockjs/sockjs-client

注:推送服务返回的数据都是加密的,形如:的base64密文数据,需通过推送服务设置的参数secKey和对应的解码算法解密;

API统计与跟踪

平台会统计每个API被用户调用的使用情况,未来可能会加入限流限次数等措施。

综合实例

以订阅宁波数据库节假日表为例,在我们做过的很多项目中都需要用到节假日这个表,在项目中,你可能将所有的节假日数据缓存起来了,当该表发生变化时(低频变化)您可能需要刷新缓存,做法有以下两种:

只使用:由于不大,可定时拉取该表数据更新缓存(浪费流量);

配合和一起使用:先利用拉取模式缓存该表,订阅该表的数据变化,根据推过来的数据更新相应的记录(推送使用);

通过以下接口获取holiday_info所有数据,请特别数据该拉取接口最多一次性只允许拉取2000条数据,请自行分页拉取:

如果采用订阅模式,则自行根据上文处理`SockJS`推送,推送过来的数据是这样的:

可以发现推送过来的数据内含执行的SQL语句以及发生变化的前后数据值,足够您进行相应的缓存数据处理了。

该API为公司内部员工调用权限,没有对应权限的用户是无法调用的

其他的API将不再累述,比如手机短信发送等API,可以登录平台直接选择安装使用;

感谢阅读!

关注我们的公众号

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180919G1HD8900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券