看板 Soft_Job 關於我們 聯絡資訊
要了解RESTful,必須與RPC及SOAP一起對比 Remote Procedure Call (RPC):起源於1976年,允許Client遠端呼叫Server的子程式, 然後將執行結果返回給Client;當時的傳輸資料常使用二進制格式,為了統一資料傳輸格 式,隨後出現了XML-RPC, XML作為資料交換語言的RPC機制。 Simple Object Access Protocol (SOAP):起源於1998年,由於RPC經常被Firewall及 Proxy Server阻擋,為解決兼容及安全性問題,採用HTTP(起源於1989)是更好的方法, SOAP還提供了一套標準方法讓程式間可以互相通信。可以簡單把SOAP當作RPC+XML+ HTTP(POST only)+有狀態的通信方法。 Representational State Transfer (REST/RESTful)起源於2000年,由於SOAP過於複雜且 依賴狀態,REST提倡使用標準的HTTP中的四種動作GET、PUT、POST及DELETE,以及Uniform Resource Identifier (URI)來指定資源,降低開發的複雜性。可以簡單把REST當作PRC+ XML+HTTP(GET,PUT,POST,DELETE)+URI+無狀態的通信方法。 發展趨勢: REST風格相比XML-RPC及SOAP更加簡潔易用,而JSON資料交換語言相較XML更加輕量,目前 大多數的Web Service都採用REST+JSON作為傳輸方法。 ※ 引述《thefattiger (LawTea)》之銘言: : 因為Web_Design板滿冷清的所以來這邊問 : 若不適當請告知 : 小弟不是Web領域的, 但也難免會碰到相關的東西 : 常聽到寫Web App的人會講到這個名詞 : 但查了一下資訊卻還是摸不著頭緒 : 估狗RESTful API 大概都是講到一下幾點 : 1.資源要用URL表示 : 這不是本來就這樣的嗎? : 還是指別濫用query string? : 關於query string與RESTful實在眾說紛紜, 查了很久也找不到令人信服的答案 : 2.Server要回傳對應的Http Status Code : 這不是也本來就這樣的嗎? : 3.用GET/POST/PUT等動詞表達對資源的操作 : 意思是說, 本來只有GET/POST用法, 但其實還有PUT/PATCH/DELETE等等 : 應該要善加利用這些動詞把操作分得更清楚? : 4.Stateless : 這也很常看到,但Http不是本來就Stateless的嗎? : 要記錄state一般不都借助於session和cookie? : 還是不RESTful的Api會有某種state? : 5.資源傳遞的格式 : 這部分似乎不在RESTful的範圍,可以是json也可以是XML : 有Web領域的前輩可以指點一下嗎? : RESTful真的很神秘, 問身邊的人每個認為的重點都不太一樣 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.189.25.18 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1552301690.A.556.html
qrtt1: 其實要加入以 resource 為中心的設計思想,不然花比較03/11 19:18
qrtt1: protocol 或風格,只會有『好簡單』 vs 『好麻煩』的結果03/11 19:18
同意 想深入了解可以看這篇 https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
WunoW: 現在用restful+json都覺得理所當然,反而覺得以前的人用那03/11 19:19
WunoW: 些像是腦袋有洞 03/11 19:19
了解歷史演進 才能知其所以然
qrtt1: s/花/光/ 。動詞是針對特定資源的狀態變更03/11 19:20
qrtt1: 不要一直覺得別人腦袋有洞啊,過去那些東西是給企業端用的03/11 19:24
qrtt1: 他們有現成的工具可以快速整合,跟新創圈或新開的小公司要03/11 19:25
qrtt1: 自己手刻是不同的情境啊。試著上網查一下有沒有舊的教學03/11 19:26
qrtt1: http://bit.ly/2SUdNaN 竟然連 esb tool 都能接 rest 了啊03/11 19:26
seedli: SOAP相較REST還是有他的優勢,許多EDI的協定還是使用SOAP03/11 19:46
jej: 記得那時候restful剛起來的時候03/11 21:21
jej: 還有一堆老外問說soap和json要問我們系統要用哪個03/11 21:21
jej: 如果用json要怎麼加簽之類的...現在都用的理所當然的03/11 21:21
darklose: 推這篇 03/12 15:54
※ 編輯: lion741205 (114.44.153.150), 03/13/2019 19:53:51
pichubaby: 推這篇 03/16 17:09