在Web应用中,API(Application Programming Interface 应用程序接口)的使用频率非常高,Google、推特、脸书,每天都会处理几十亿次的API调用请求。API接口一旦公布很难修改,所以设计要慎之又慎。本文主要归纳几种流行的Web应用API接口,总结它们的特点,供需要设计API的开发者作为参考。如果只需要RESTful的API模版建议参考Swagger。顺带介绍编写Python SDK调用API的技巧,最后是用作为例子的多说Python SDK。
几个常见的API对比
右图是ProgrammableWeb中最流行的几种API的整理:
支持协议:REST实质上是一种架构,ProgrammableWeb标注为协议(Protocols),专指利用URI直接访问资源的方式,所以协议上标明是REST并不代表它的URI形式也符合REST。如图所示,除了Youtube,其他几种API都采用了REST架构,甚至只提供Gdata的Youtube,都有开发者用Ruby给它加了一个REST的外壳。所以如果是一个新项目,API从一开始就采用REST架构比较好。
数据格式:所有API都支持XML。FB标注的是只支持XML,但根据之前开发的经验,请求FB的Graph数据返回的也是JSON,只有Twillo是只提供XML格式。JSON格式更简单,缺点是失去了命名空间等高级特征,而且不像XML有很多现成的开发工具。但“开发人员友好性”是API首要考虑的问题,能两种格式都能支持当然会更好,如果开发时间有限,综合来看可以选择先支持JSON。
接口请求地址ÿ