天天看點

《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應用程式的基礎都是相同的,另外本章中所涉及的一些特定方面和技能也都是相同的。