顯示廣告
隱藏 ✕
※ 本文為 terievv 轉寄自 ptt.cc 更新時間: 2019-03-14 01:23:19
看板 Soft_Job
作者 brucetu (sec)
標題 Re: [請益] 所以,到底什麼是RESTful API?
時間 Tue Mar 12 15:56:24 2019



沒想到RESTful吸引這麼多人討論

看來RESTful真的是一個概念各種表述

小弟剛接觸RESTful的時候

曾經很熱血的把一百多支API從只有post/get改成RESTful

改完之後有些人覺得好 有些人覺得無所謂

也有人覺得一律POST 這樣client實作最方便 只要能用就好


後來我遇到一個例子

要提供API搜尋文章歷史紀錄 可選的輸入欄位有N種

url可能長這樣
ooxx.com/posts/query?writerNameKeyword=..&minRate=..&maxRate=..
假設還有瀏覽數/發文日期/國家雜七雜八的可選輸入欄位

因為是可選所以也不適合用posts/{country}/query?

日期 瀏覽數這類的欄位看起來也是放在querystring比較好

最後整個url就超級長

雖然SPA設計不會讓這串url出現在瀏覽器網址

但是看到這串這麼長還是會覺得很怪

這時候就很想用POST把參數都放body 小組討論後也覺得這樣比較好

各位覺得呢?



後來其他系統我也不再堅持query一定要用GET了

順帶一提 最近發現蝦皮購物前端呼叫的api也改成不是restful了..

v2版本的下架商品是PUT , 把整個商品資料json帶入 status改成8
刪除商品是 DELETE  products/{id}


v3版本entry變成 update_product 跟 delete_product
verb都是POST

以前在開發也經常為了RESTful命名花很多時間

甚至還要跟小組討論 或是有人寫出不是RESTful的時候還要重寫

最後APP開發者串接還是要看文件才行

只是看到RESTful的接口可能覺得很乾淨 用起來有一種爽度

但是文件不說明你還是不會知道這支API所有的細節

反應到開發成本上 堅持完全RESTful的設計 我是沒有感覺到優勢




--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.82.149
※ 文章代碼(AID): #1SXsOhpy (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1552377387.A.CFC.html
moom50302: 每個人都要有概念,Restful才有優勢,不然光是理解就1F 03/12 16:22
moom50302: 花更多時間了
dreamnook: 學習過程中我對restful最大誤解是要拋棄querystring3F 03/12 16:29
dreamnook: 但實際上沒有要求拋棄的樣子 忘了從哪傳來的
othree: 因為沒 querystring 最漂亮吧,其實這些問題也是現在5F 03/12 17:32
othree: GraphQL 的由來
blues520520: 查到有要符合HATEOAS 才可以叫RESTful?7F 03/12 19:10
tz5514: query string用在optional parameters 但是還是解決不了8F 03/12 20:21
tz5514: 欄位大量排列組合的問題 所以才需要GraphQL
y3k: 初學者都會認為直接POST最快最穩 但是有一些隱性的問題跟劣勢10F 03/12 21:28
y3k: 寫久還是把Http Method跟Code搬出來比較嚴謹
srwhite: 我也有這問題 查詢條件多的時候大家都怎麼弄12F 03/13 13:43

--
※ 看板: terievv 文章推薦值: 0 目前人氣: 0 累積人氣: 161 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇