天天看点

《PHP精粹:编写高效PHP代码》——3.5节设计一个Web服务

3.5 设计一个web服务

当你创建一个web服务时有一些关键点你必须牢记。本节将贯穿创建一个高效实用的服务时需要关注的要点。

首先要决定你将采用哪种服务形式,如果你的服务和表述数据结合很紧密,你可能会选择restful服务。对于计算机之间的数据交换,你可能选择xml-rpc或soap,特别是在你确信soap已被人们透彻理解的企业环境下。当我们从javascript传输异步请求或者传输数据到移动设备时,json也许是一个更好的选择。

当你使用web服务时,要始终牢记用户总会将一些毫无意义的内容传入服务中,这并不是说用户都是白痴,但有时候我们会误解(或忽略)这个提示,或者犯明显的错误。这种情况下服务如何响应是衡量它好坏的标准。一个健壮性和可靠的服务将对非破坏性的失败做出反应,而且把在哪里发生错误的信息反馈给用户。在我们讲完该主题准备向前继续时,要做的最重要一点是:错误消息应该以同样的格式返回,如同一个成功的输出将会到达。

有一个设计原则我们称其为kiss(keep it simple, stupid, 保持简单、无趣),就api设计而论少即是多。要当心避免创建一个广泛的、不规则的、不稳定的api。只有我们真正需要的时候才添加功能,并且要确保新功能和其他api实现的方式保持一致。

一个web服务直到交付相关文档它才算完整。没有文档,用户很难使用你的服务,其中很多都不会使用。好的文档将消除障碍,并允许用户在你暴露的功能上建立属于自己的精彩内容。

归根结底,暴露一个api,不是从内部就是作为一个面向服务内容结构的一部分,都是关于增强他人的能力和信心使用有效信息的内容。无论这个“他人”指软件还是指人、内部还是外部,这个基本目标不会改变。web服务和web应用程序的基础都是相同的,另外本章中所涉及的一些特定方面和技能也都是相同的。