作者:
Geison (Angels)
2022-06-22 10:38:22我看有些是狀態碼200,空data
但有些又是做404,然後回個message 數據不存在之類的
這哪一種做法比較好?
作者:
godddddd (howudoing)
2022-06-22 10:50:00Body empty 204Error code 404Success and return body 200前公司用這樣表示
作者:
LINGZ (肥兔小欽)
2022-06-22 10:56:00回404,怎麼跟api不存在區別?
作者:
Romulus (Säubern Mode)
2022-06-22 11:10:00看沒資料的物理意義 如果是他不能沒有但是沒有就400/404如果沒有資料是正常狀況就回200空data 不推薦204204比較像是那種永遠不會有回傳的API回的另外404純留給打錯path/API不存在比較好懂
作者:
giacch 2022-06-22 11:13:00RESTful的鍋
作者: z56562337 2022-06-22 11:46:00
404 只會覺得 url 打錯吧
作者:
alihue (wanda wanda)
2022-06-22 11:54:00你不會多一個 numFound 逆
看收到空值後,你的後續動作是什麼,狀態碼提示你之後要導向哪個動作。
作者:
bill0205 (善良的小孩沒人愛)
2022-06-22 12:12:00當然是200..404是針對path不存在而不是資料不存在除非你說是像這樣/{id} 沒資料給404合理(?!
作者:
mike8469 (mike8469)
2022-06-22 12:34:00200, 400-499 用在用戶端錯誤
作者:
yutou88 (yutoueeb)
2022-06-22 12:34:00404會覺得url打錯+1
作者: longlongint (華哥爾) 2022-06-22 12:50:00
預料之內 200 預料之外 404200 功能正常,查無此資料404 有點像在反問 caller 你在做什麼
作者:
Lhmstu (lhmstu)
2022-06-22 12:53:00200吧
作者:
Hsins (翔)
2022-06-22 13:09:00如果是以 RESTful 角度去設計的話,舉 /users/<USERNAME>為例,當 <USERNAME> 的資源不存在時,返回狀態碼 404比較其他狀態碼:401 (沒有授權) 403 (有授權但權限不夠)... 參考 GitHub REST API 的實現也是這樣做的可是具體還是要看實際場景需不需要這些今天如果是請求 HTML 頁面資源的話,早年沒東西塞 200 會在 SEO 上被降 ranking
作者: EEeliteEE (elite) 2022-06-22 13:38:00
視你組織 code style 而定
作者:
opliya (Marzz)
2022-06-22 13:51:00200 status fail
作者:
luke72 (ccc)
2022-06-22 13:59:00REST API的精神是要回歸http status code,回404但是相關配套的程式如果處理不好容易出錯,不如回200
作者:
Romulus (Säubern Mode)
2022-06-22 14:02:00應該只有403是不行的ㄅ
作者:
Jichang (C.C.Lemon)
2022-06-22 14:14:00json 的空 是什麼意思
空的當然是200阿 我前公司就用404 導致一堆問題 超白癡api不存在應該也不是404 400比較對 404像是你用名字或id去查結果資料庫沒這東西
作者:
ssccg (23)
2022-06-22 14:37:00restful來說是404沒錯啊,只是現在人看到404就覺得網址錯原始http規格就整個URI代表資源,把404限縮到path未實作的反而是後來各種web framework,只是錯的人多了就變對的了
作者: adsl12367 (adsl12367) 2022-06-22 15:26:00
200 msg放查無資料
假設是一個論壇 你要找一個看板的文章 給錯看板id那叫做404 有這個看板但沒有文章 那叫做200 就這樣
作者:
TheArrow (TheArrow)
2022-06-22 16:42:00我都傳204^_^
作者:
MyNion (Nion Lee)
2022-06-22 16:49:00請求成功但response空body,回傳204或是手工點,傳200 + 字串"沒有內容"
作者:
sharek (...)
2022-06-22 16:56:00推文看下來似乎沒有標準?內部討論好就好了是嗎
作者:
Romulus (Säubern Mode)
2022-06-22 17:00:00是 其實沒有很硬的標準 尤其內部的話真的協調好就好
作者:
crazycy (LCY)
2022-06-22 17:00:00RESTful的話 查詢不存在的ID之類的話就404阿
作者:
johnny94 (32767)
2022-06-22 17:32:00資源不存在跟資源存在只是目前沒有的差別
作者: superpandal 2022-06-22 18:59:00
只愛用兩種狀態 錯誤給原因 前端管理錯訊息是冏的 有的還前後端都維護一套更冏
作者:
mathrew (Joey)
2022-06-22 19:00:00你的案例404很怪,404直覺就是錯誤的URL
作者:
now99 (陳在天)
2022-06-22 19:35:00發生系統錯誤不也404,你要怎麼分辨不如rtnCode 處理
作者: TheWhack (我是德華) 2022-06-22 19:40:00
200比較適合,因為路徑無誤,而且空資料也是一種資料
作者:
quickey (色肥宅)
2022-06-22 19:40:00404吧 回啥小200
作者:
Hsins (翔)
2022-06-22 19:43:00發生系統錯誤哪會是 404?拜託不要誤導人
作者:
pilor (Formosa)
2022-06-22 19:46:00自己覺得如果是用id找不到回404如果是搜尋資料這種會多筆的用200然後是空資料
作者:
rollr (衛生紙的心情)
2022-06-22 19:54:00回404的可以 fired 了
作者: moom50302 (武林三羚鱷) 2022-06-22 20:45:00
回404來亂的嗎?
作者: yoyo930021 (yoyo930021) 2022-06-22 21:11:00
我的習慣是 user/{id} 是 404 list 的話 200 空陣列不過這個還是看團隊約定啦畢竟 HTTP Status Code 到底代表協議本身的狀態還是 API 提供服務的狀態就有的吵了
唸過廠商HTTP Status Code 404 ,怎麼知道是call 錯,還真的沒資料。
作者:
luke72 (ccc)
2022-06-22 21:53:00REST就只是篇博士論文,學術界嘛,根本沒實戰驗證過發明者拿到學位就走人了,哪管你照著做有多少相容問題
作者:
Hsins (翔)
2022-06-22 21:59:00所以有很多問題啊,拆分粒度不夠或太小都不適合,要嘛拿到太多不必要的資料,要嘛需要層層往下才拿到想要的資料,一個是浪費流量資源,一個是頻繁訪問。所以現在有 GraphQL 嘛
作者:
jlhc (H)
2022-06-22 22:18:00200...
作者:
opliya (Marzz)
2022-06-22 22:39:00Get query 連id 都找不到回404沒問題,如果有id 就回個200null data
作者:
jackflu (jackflu)
2022-06-22 23:05:00水,這個問題不錯喔,是技術又不會太冷門,想多看點討論
作者: MoshPit (Vortex) 2022-06-22 23:17:00
當然是200,回傳空陣列即可。404是找不到該route的時候才回傳
作者:
sakyle (Sakyle)
2022-06-22 23:31:00有這個路徑為什麼是404?
作者:
sakyle (Sakyle)
2022-06-22 23:32:00都到倉庫翻東西了還跟客人說沒有找到這條路?
刻意把404設計成單獨給bad url用不是給有心人猜嘛不然你去參考大廠怎樣做 我所知aws azure是回傳404url,參數...等等client錯誤大多是回400+reason
作者:
sharek (...)
2022-06-23 07:20:00既然沒有標準,沒資料回404也還好吧,文件or講好就好了404也不一定只能代表路徑不存在
作者:
DrTech (竹科管理處網軍研發人員)
2022-06-23 08:22:00200。或改用204。看來原文基礎沒學好。這些 status code是用來判斷什麼都不太清楚。API存取正常就是要回2xx。RFC2616,明確規範,2xx是成功。4xx,是client error. 。沒錯誤不要用4xx。不懂的去查國際標準怎麼寫。
作者:
ssccg (23)
2022-06-23 15:17:00其實這篇原PO並沒有限定說在問RESTful,所以應該沒有哪個比較好,不要混在一起就好
作者: za755188 2022-06-23 17:37:00
這個吵不完啦XDD 不過我認識的前端都希望回200
作者:
bill0205 (善良的小孩沒人愛)
2022-06-23 20:41:00如果本來是預期為清單類型 結果沒有資料 那就是200但如果最後是指定資源值 404或是200就比較有爭議但假如是類似/api/users/<user> 找不到 丟404好像很合理
建議website跟api server分開,不然就真的404會很混亂.
絕對不是用404, 那是http的error code拿來混用絕對不好
作者:
strlen (strlen)
2022-06-24 11:43:00空資料是空資料 伺服有問題是伺服有問題 這兩回事只要API能正常運作 都不應該吐200以外的東西空資料只是目前沒有東西 不代表之後也不會有東西API資料狀態 那是連線狀態確認沒問題之後的事資料狀態 與 連線狀態 是完全不同的東西
作者:
hegemon (hegemon)
2022-06-24 11:48:00樓上你可以用204更精確
作者:
Romulus (Säubern Mode)
2022-06-24 16:29:00可是404和連線狀態沒有半毛錢關係
作者:
askacis (ASKA)
2022-06-25 12:08:00200,body看資料格式,xml的話就帶空元素之類的方式
基本上200是代表回傳成功,至於有沒有資料就裝在data吧,目前是這樣規範
作者: npkalala 2022-06-25 17:39:00
404 Not found不能只看字面意思吧,要了解一下內涵
作者:
strlen (strlen)
2022-06-25 22:16:00樓上是不是以為連線狀態指得是你的網路狀態?我說的是連到該伺服器API的狀態好嗎?「狀態」也不一定只是連不上 還可能有其他種狀況
作者:
bill0205 (善良的小孩沒人愛)
2022-06-26 11:16:00404不代表不用在body資料吧 預設格式還是要有
作者:
jl40 (jl)
2022-06-30 22:20:00424
作者: shimachokong 2022-07-02 18:34:00
200,沒有那個 api才是 404
作者: hannah5269 (哈娜愛哈哈) 2022-07-08 03:13:00
404新理解..