现在的位置: 首页 > 综合 > 正文

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

2013年06月12日 ⁄ 综合 ⁄ 共 823字 ⁄ 字号 评论关闭

需要考虑的要素有:

*)易于维护

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

基础逻辑包括过滤、排序、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的风格,资源加操作。

抱歉!评论已关闭.