翻翻以前的哦feed看到你的問題,試著回答下吧。
A. 觀點1中這個“ID”如何定義?
我粗略看了下原文,文中并沒有提及一定要用URI,不能用URL這種觀點。URL和URI的介紹很多,怎么可能沒有一個明確的說服呢?
而且,無論用URL或者URI來說明ID如何定義這章節都不沖突。就跟說北京有故宮博物館和中國有故宮博物館一樣的道理。
B. 要為那些“事物”定義ID?
你的問題是“那么對于這種模式的資源,REST又如何來表示呢?”
我試著回答,假設你有個查詢需要查詢所有姓為“張”,并且出生日期在1950年前的。那么定義URL的時候,這種集合性的資源ID是后臺解析這個查詢邏輯的地方定義的。舉個例子,老板給你一個feature讓你做,這個feature要做很多邏輯。那么老板給你講的時候,不會把這個case的邏輯說一遍,只會告訴你case名稱,這個case名稱就是ID。不要想著把整個case的實現邏輯在URI中體現,僅僅定義個ID即可。
C. 使用鏈接指向任何可以標識的事物
不清楚具體哪個地方不理解,其實這個不用較真。如果你以前寫web的時候就已經follow了些類似的REST風格,那么相比就是沒太大的區別。
而且就REST的風格來講,國外的一些大牛們也吵來吵去的。所謂的風格,不局限于一定要按照某種方式去寫才叫REST。理解概念,將其應用到web開發中去,外面的人看懂沒看懂不一定強制要求,Team內能達成一致并相互理解就算成功。
D. “標準方法”是否夠用?
既然叫做標準方法,就是就是解決web開發中一些標準問題,例如CRUD。
當然這個不是絕對的,我曾經看到過一些REST實踐的人不用DELETE,GET來做,僅僅用POST就可以實現REST開發,可向其概念與應用存在著并非絕對的關系。
你說的是否夠用我想能你從業務角度考慮問題,不是先選技術,再去解決特定業務問題。而是從業務角度尋找最佳技術解決方案。
如果業務系統很大,REST無法完美的解決相應case問題,或者說能夠解決但會很復雜。那么你可以考慮基于WSDL的WebService來實現,很多文章都在說兩個的區別和應用場景,你可以參考一下。
E. 無狀態通信如何實現
這個我這樣理解,跳出基于HTML4標準的Web開發方式。想想如下場景:
1. 基于CS模型的客戶端開發方式,例如用WPF,SWT,WinForm等。
2. 基于RIA Web框架的開發訪方式,例如Silverlight, Flash, JFX等。
3. 基于HTML5的開發模式。
4. 基于腳本語言的開發模式,例如用Ruby或者Grovy訪問web等。
以上拙見,就叨叨這些吧。
回復 更多評論