最佳實踐1:儘量以對瀏覽器友好的方式設計REST API

李錕發表於2012-01-26

在設計REST API時,即使面向的消費者是程式而不是人類使用者,也應該儘量以對瀏覽器友好的方式來設計。 那麼什麼叫做“對瀏覽器友好”呢?“對瀏覽器友好”的意思是說:僅僅使用瀏覽器+HTML就可以方便地對REST API做測試。 大家知道,HTML表單僅僅支援GET和POST兩種HTTP方法,不支援PUT/DELETE方法。然而操作伺服器端的資源,僅僅有GET/POST兩種方法是不完備的,必須要實現PUT/DELETE方法。 為了解決這兩者之間的矛盾,聰明的REST開發框架的設計師想出了一個辦法。就是通過在HTML表單中加入一個“_method”隱藏欄位,來模擬PUT/DELETE方法。 例如:當REST開發框架接收到一個HTTP POST請求,它發現其中有一個_method=put的引數,那麼它就會將這個請求等同於一個HTTP PUT請求。

這樣設計帶來的好處,就是REST API既可以使用程式來驅動,也可以使用HTML來驅動,因此測試起來非常方便。在測試的過程中,還可以藉助Firebug之類的除錯工具來檢視請求/響應的內容、以及快取是否生效。 如果使用HTTP Basic Authentication或者HTTP Digest Authentication方式對消費者做身份認證,瀏覽器對這兩種身份認證方式有很好的支援。可以確信,只要使用瀏覽器測試沒有問題,伺服器端的實現與任何支援Basic/Digest身份認證的HTTP客戶端庫配合工作也不會有問題。

相關文章