关闭

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

标签: 开放apiRESTfulwebservice
351人阅读 评论(0) 收藏 举报
分类:

需要考虑的要素有:

*)易于维护

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

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:229657次
    • 积分:3266
    • 等级:
    • 排名:第10373名
    • 原创:37篇
    • 转载:435篇
    • 译文:1篇
    • 评论:6条
    最新评论