HTTP接口架构升级

项目组针对影片详情页最原始的设计是使用xml静态文件的形式向IPAD终端提供数据内容(可能更多地出于性能考虑),后来又使用json静态文件给安卓终端提供数据内容(文件内容小了点,比xml进步了些),但是这样做的弊端越来越多,比如哪个终端想要有一些个性化的数据(独家内容或者是mp4视频格式),这样就不得不再为这个终端生成一批静态文件,另外还得通过rsync同步这些静态文件到前端服务器,又慢又繁琐,而且偶尔还会同步不成功。

后来我们放弃了使用静态文件的方式,使用redis来存储详情页数据(通过脚本定时写入或者是发布内容的时候触发写入),并使用redis自带的主从同步机制,将数据同步到前端各台服务器。这样做的好处是:不仅不用管内容的同步了,把所有同步问题都甩给redis本身,而且从redis里面取出数据时,可以根据来自客户端的不同请求参数(不同终端、不同版本),对数据进行各种的加工后再返回给客户端。这样,redis里面只是存储原始数据,很好地实现了数据和业务的分离。


设计基于HTTP的接口有很多值得考究的地方,推荐这2篇blog:RESTful API设计指南     HTTP API设计指南

另外还有一点值得一提,首页的设计中,由于运营的需要,时常会加到几个版块,或者去掉某个版块,这比较容易搞定,只要客户端和服务端协商好就ok。但更繁琐的一般是当前版本的内容比上个版本的内容多了或少了几个版块,这时需要考虑的是复用老版本的数据(减少运营编辑的工作量),但是又不能影响到老版本的接口,即向后兼容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值