规划你的WebAPI – 安全


译自“Professional Web APIs with PHP: eBay,
Google, PayPal, Amazon, FedEx, Plus Web Feeds” (chapter 12)


你一定听过这样一句话“失败的计划是必定失败(Fail to plan, and you plan to fail.”对WebAPI来说,在开始一切工作之前的规划尤为重要,因为他不仅会影响到实现难度,同时会让那些使用API的开发者痛苦不堪。

Continue reading “规划你的WebAPI – 安全”

SOA 就是 OpenAPI

两个时髦的玩意,原来就是一回事。并不是很难理解,只是大家习惯了接受各种各样新名词,而又惯性的没有去把二者联系起来。知道在wikipedia的SOA词条里看到这句话:

A mature rollout of SOA effectively defines the API of the organization.

任何系统无论是复杂的商用系统还是简单的个人博客,都在提供或多或少的服务。将这些服务分割成独立的,无状态的服务单元,然后通过HTTP(webservice)或者是其他的连接方式连起来。接下来,如何compose这些服务单元又是新的问题,ESB和BPM就大行其道了。将来有一天,用网站提供的OpenAPI进行网站之间的整合,互操作,信息交换一定会催生出更多有趣的东西。

中心思想:互联网和企业应用同样都需要整合,而且整合方向和方法应该都是一样的。

纯属YY

REST API vs. SOAP API

译自“Professional Web APIs with PHP: eBay,
Google, PayPal, Amazon, FedEx, Plus Web Feeds”

REST API
当处理REST请求时,因为信息是通过GET,所以,信息在传输过程中会进行URL编码(URL-encoded);当需要进一步处理时,首先要进行解码(唯一例外是用户名和密码)。不同的请求类型应该使用不同的endpoints(URLs);如果要以单独的脚本程序来处理所有的请求,你可以让所有的请求都指向同一个endpoint,或者配置web服务器来映射许多endpoints到同一个脚本。我建议用后一种方式;它符合规范同时允许你以后在不需要影响外部接口的情况下做修改。

允许程序员使用web接口来请求API – 在调试程序时将变得非常有用;程序员可以快速的判断问题源于请求本身还是代码。你可以提供给程序员的调试工具越多,你的网站也就越容易开发。

SOAP APIs
当处理SOAP请求时,首先要检查请求是否符合WSDL指定的格式。如果你使用诸如NuSOAP的工具,他可以帮你做到这一点。事实上,大多数SOAP API使用一个框架来处理许多低级的工作。 SOAP API使用单一endpoint接收所有请求(作为一个通用规则,一些大的API会根据功能来拆分到不同的endpoint),因此,或者是你有一个很大的脚本文件,或者是在每个功能点都调用很多required()方法。

允许程序员在使用web接口时可以粘贴整个请求文档到一个表单,然后发送到你的服务器。从直接的经验来看,有这样一个工具对程序员调试程序时是非常有用的。提供脚本或者函数从而让程序员可以手动创建请求对那些没有使用SOAP框架的程序员是很有帮助的。