如何设计一个好的RESTful开放API平台

需要考虑的要素有:

*)易于维护

设计上要简洁有效。尽量把公共逻辑用组件的形式实现。这样就要求设计一个基础逻辑实现层。具体的业务逻辑在这个公用层上作特定的扩展。

基础逻辑包括过滤、排序、url参数处理(parse and sanity)、日志处理.


*)安全

尽可能使用标准的安全协议比如OAuth,这样在跨系统对接时会有更好的兼容性。

在OAuth之上,我们可以按照业务需求扩展更多的安全因素比如throttle, blacklist等

安全应该区分成两层,一层是认证授权,一层是安全控制。安全控制建立在认证授权之上。


*)可配置

哪些controllers/actions是需要做安全验证的,哪些是需要访问频率控制的。这些都应该放在Configuration中而不是hardcode.


*)可管理

需要提供管理后台,方便对配置进行管理、对API使用者进行管理、对API使用情况进行统计/监控。


*)支持多种格式

格式在接口url中以format后缀来指定比如jigoapps.com/cases.format(format would be one of xml/json/rss...)


*)支持多语言

*)支持Multi-Themes

如果内容组织格式发生变化,应该可以通过新建一个theme来轻易实现,这样可以不影响原有老的实现。


*)支持海量数据分页

*)可测试
需要构造一套自动测试用例来验证API。比如使用PHPUnit/SimpleTest等测试框架来构造这样的测试子系统。


*)读写分离
在一个master/slave这样的数据库方案中,读操作通常指向Slave。而写操作指向Master。
平台应该很容易的通过配置来切换controller/action所使用的数据库。

*)分布式处理
在高负荷的情况下,必然会把平台布署到多服务器上去。


*)分级缓存
需要支持model查询结果缓存,url页面缓存,类对象缓存等。


*)RESTful

设计url时不要忘记遵循RESTful的风格,资源加操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值