Soft_Job 板


LINE

我看有些是狀態碼200,空data 但有些又是做404,然後回個message 數據不存在之類的 這哪一種做法比較好? --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.168.185.127 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1655865504.A.17A.html
1F:推 ntpuisbest: 加個Status判斷是否為空會好點嗎? 06/22 10:48
2F:→ vi000246: 200啊 是說這問題你可以問同事吧 06/22 10:49
3F:推 CaptPlanet: 200 06/22 10:50
4F:推 godddddd: Body empty 204 06/22 10:50
5F:→ godddddd: Error code 404 06/22 10:50
6F:→ godddddd: Success and return body 200 06/22 10:50
7F:→ godddddd: 前公司用這樣表示 06/22 10:50
8F:→ bheegrl: 200,回404我會覺得沒打到,當然這個可以談的 06/22 10:54
9F:→ LINGZ: 回404,怎麼跟api不存在區別? 06/22 10:56
10F:推 Romulus: 看沒資料的物理意義 如果是他不能沒有但是沒有就400/404 06/22 11:10
11F:→ Romulus: 如果沒有資料是正常狀況就回200空data 不推薦204 06/22 11:11
12F:→ Romulus: 204比較像是那種永遠不會有回傳的API回的 06/22 11:11
13F:→ Romulus: 另外404純留給打錯path/API不存在比較好懂 06/22 11:13
14F:推 giacch: RESTful的鍋 06/22 11:13
15F:推 bronx0807: 200 有找到資源,但該資源返回空資料 06/22 11:29
16F:→ gura9527: http status不是這樣用的 06/22 11:39
17F:→ devilkool: 怎麼會用404.... 06/22 11:40
18F:推 aidansky0989: 看錯誤原因,通常是200給reason或403 06/22 11:46
19F:→ z56562337: 404 只會覺得 url 打錯吧 06/22 11:46
20F:推 alihue: 你不會多一個 numFound 逆 06/22 11:54
21F:推 popmentos: 看收到空值後,你的後續動作是什麼,狀態碼提示你之後 06/22 12:04
22F:→ popmentos: 要導向哪個動作。 06/22 12:04
23F:→ bill0205: 當然是200..404是針對path不存在而不是資料不存在 06/22 12:12
24F:推 bill0205: 除非你說是像這樣/{id} 沒資料給404合理(?! 06/22 12:15
25F:推 mike8469: 200, 400-499 用在用戶端錯誤 06/22 12:34
26F:→ yutou88: 404會覺得url打錯+1 06/22 12:34
27F:→ longlongint: 預料之內 200 預料之外 404 06/22 12:50
28F:→ longlongint: 200 功能正常,查無此資料 06/22 12:50
29F:→ longlongint: 404 有點像在反問 caller 你在做什麼 06/22 12:51
30F:推 Lhmstu: 200吧 06/22 12:53
31F:推 youtuuube000: 推10樓 06/22 12:55
32F:→ Hsins: 如果是以 RESTful 角度去設計的話,舉 /users/<USERNAME> 06/22 13:09
33F:→ Hsins: 為例,當 <USERNAME> 的資源不存在時,返回狀態碼 404 06/22 13:10
34F:→ Hsins: 比較其他狀態碼:401 (沒有授權) 403 (有授權但權限不夠) 06/22 13:12
35F:→ Hsins: ... 參考 GitHub REST API 的實現也是這樣做的 06/22 13:13
36F:→ Hsins: 可是具體還是要看實際場景需不需要這些 06/22 13:13
37F:→ Hsins: 今天如果是請求 HTML 頁面資源的話,早年沒東西塞 200 會 06/22 13:15
38F:→ Hsins: 在 SEO 上被降 ranking 06/22 13:15
39F:推 EEeliteEE: 視你組織 code style 而定 06/22 13:38
40F:推 opliya: 200 status fail 06/22 13:51
41F:推 luke72: REST API的精神是要回歸http status code,回404 06/22 13:59
42F:→ luke72: 但是相關配套的程式如果處理不好容易出錯,不如回200 06/22 14:00
43F:→ Romulus: 應該只有403是不行的ㄅ 06/22 14:02
44F:推 Jichang: json 的空 是什麼意思 06/22 14:14
45F:→ lturtsamuel: 空的當然是200阿 我前公司就用404 導致一堆問題 超白 06/22 14:27
46F:→ lturtsamuel: 癡 06/22 14:27
47F:→ lturtsamuel: api不存在應該也不是404 400比較對 404像是你用名字 06/22 14:29
48F:→ lturtsamuel: 或id去查結果資料庫沒這東西 06/22 14:29
49F:→ ssccg: restful來說是404沒錯啊,只是現在人看到404就覺得網址錯 06/22 14:37
50F:→ ssccg: 原始http規格就整個URI代表資源,把404限縮到path未實作的 06/22 14:47
51F:→ ssccg: 反而是後來各種web framework,只是錯的人多了就變對的了 06/22 14:47
52F:→ ChungLi5566: 如果亂打還回200 會被弱掃工具判斷成有弱點 06/22 15:22
53F:→ adsl12367: 200 msg放查無資料 06/22 15:26
54F:推 lturtsamuel: 假設是一個論壇 你要找一個看板的文章 給錯看板id那 06/22 15:26
55F:→ lturtsamuel: 叫做404 有這個看板但沒有文章 那叫做200 就這樣 06/22 15:27
56F:推 cloudsan: 搜尋無結果200,查詢不存在的使用者404 06/22 16:12
57F:→ TheArrow: 我都傳204^_^ 06/22 16:42
58F:推 MyNion: 請求成功但response空body,回傳204 06/22 16:49
59F:→ MyNion: 或是手工點,傳200 + 字串"沒有內容" 06/22 16:50
60F:→ sharek: 推文看下來似乎沒有標準?內部討論好就好了是嗎 06/22 16:56
61F:推 Romulus: 是 其實沒有很硬的標準 尤其內部的話真的協調好就好 06/22 17:00
62F:推 crazycy: RESTful的話 查詢不存在的ID之類的話就404阿 06/22 17:00
63F:→ johnny94: 資源不存在跟資源存在只是目前沒有的差別 06/22 17:32
64F:→ superpandal: 只愛用兩種狀態 錯誤給原因 前端管理錯訊息是冏的 有 06/22 18:59
65F:→ superpandal: 的還前後端都維護一套更冏 06/22 18:59
66F:推 mathrew: 你的案例404很怪,404直覺就是錯誤的URL 06/22 19:00
67F:推 now99: 發生系統錯誤不也404,你要怎麼分辨 06/22 19:35
68F:→ now99: 不如rtnCode 處理 06/22 19:36
69F:推 TheWhack: 200比較適合,因為路徑無誤,而且空資料也是一種資料 06/22 19:40
70F:推 quickey: 404吧 回啥小200 06/22 19:40
71F:→ Hsins: 發生系統錯誤哪會是 404?拜託不要誤導人 06/22 19:43
72F:推 pilor: 自己覺得如果是用id找不到回404 06/22 19:46
73F:→ pilor: 如果是搜尋資料這種會多筆的用200然後是空資料 06/22 19:46
74F:推 rollr: 回404的可以 fired 了 06/22 19:54
75F:推 pokemonmen: 有成功就2 開頭 我以為是這樣 06/22 20:12
76F:→ moom50302: 回404來亂的嗎? 06/22 20:45
77F:→ yoyo930021: 我的習慣是 user/{id} 是 404 list 的話 200 空陣列 06/22 21:11
78F:→ yoyo930021: 不過這個還是看團隊約定啦 06/22 21:12
79F:→ yoyo930021: 畢竟 HTTP Status Code 到底代表協議本身的狀態 06/22 21:12
80F:→ yoyo930021: 還是 API 提供服務的狀態就有的吵了 06/22 21:12
81F:推 yahuichang: 唸過廠商HTTP Status Code 404 ,怎麼知道是call 錯, 06/22 21:35
82F:→ yahuichang: 還真的沒資料。 06/22 21:35
83F:推 luke72: REST就只是篇博士論文,學術界嘛,根本沒實戰驗證過 06/22 21:53
84F:→ luke72: 發明者拿到學位就走人了,哪管你照著做有多少相容問題 06/22 21:54
85F:→ Hsins: 所以有很多問題啊,拆分粒度不夠或太小都不適合,要嘛拿到 06/22 21:59
86F:→ Hsins: 太多不必要的資料,要嘛需要層層往下才拿到想要的資料,一 06/22 22:00
87F:→ Hsins: 個是浪費流量資源,一個是頻繁訪問。所以現在有 GraphQL 嘛 06/22 22:00
88F:推 jlhc: 200... 06/22 22:18
89F:推 opliya: Get query 連id 都找不到回404沒問題,如果有id 就回個200 06/22 22:39
90F:→ opliya: null data 06/22 22:39
91F:推 jackflu: 水,這個問題不錯喔,是技術又不會太冷門,想多看點討論 06/22 23:05
92F:推 MoshPit: 當然是200,回傳空陣列即可。404是找不到該route的時候才 06/22 23:17
93F:→ MoshPit: 回傳 06/22 23:17
94F:推 viper9709: 不要用404比較好吧 06/22 23:20
95F:推 sakyle: 有這個路徑為什麼是404? 06/22 23:31
96F:→ kurtsgm: ..........200啦幹 06/22 23:31
97F:→ sakyle: 都到倉庫翻東西了還跟客人說沒有找到這條路? 06/22 23:32
98F:→ alan3100: 刻意把404設計成單獨給bad url用不是給有心人猜嘛 06/23 00:53
99F:→ alan3100: 不然你去參考大廠怎樣做 我所知aws azure是回傳404 06/23 01:15
100F:→ alan3100: url,參數...等等client錯誤大多是回400+reason 06/23 01:28
101F:推 jinmin88: 資源不存在回404..單純沒body回204 06/23 01:33
102F:推 stupid0319: 200 06/23 07:10
103F:推 sharek: 既然沒有標準,沒資料回404也還好吧,文件or講好就好了 06/23 07:20
104F:→ sharek: 404也不一定只能代表路徑不存在 06/23 07:36
105F:→ DrTech: 200。或改用204。看來原文基礎沒學好。這些 status code是 06/23 08:22
106F:→ DrTech: 用來判斷什麼都不太清楚。API存取正常就是要回2xx。 06/23 08:22
107F:→ DrTech: RFC2616,明確規範,2xx是成功。4xx,是client error. 。 06/23 08:24
108F:→ DrTech: 沒錯誤不要用4xx。 06/23 08:24
109F:→ DrTech: 不懂的去查國際標準怎麼寫。 06/23 08:26
110F:推 willy0206: https://i.imgur.com/8jZ79uy.jpg 06/23 11:54
111F:→ ssccg: 其實這篇原PO並沒有限定說在問RESTful,所以應該沒有哪個比 06/23 15:17
112F:→ ssccg: 較好,不要混在一起就好 06/23 15:17
113F:推 za755188: 這個吵不完啦XDD 不過我認識的前端都希望回200 06/23 17:37
114F:推 penril0326: 200啊 404感覺是path錯了 06/23 18:22
115F:推 bill0205: 如果本來是預期為清單類型 結果沒有資料 那就是200 06/23 20:41
116F:→ bill0205: 但如果最後是指定資源值 404或是200就比較有爭議 06/23 20:42
117F:→ bill0205: 但假如是類似/api/users/<user> 找不到 丟404好像很合理 06/23 20:42
118F:推 jinmin88: 建議website跟api server分開,不然就真的404會很混亂. 06/24 01:07
119F:推 preisner: 絕對不是用404, 那是http的error code拿來混用絕對不好 06/24 08:13
120F:推 strlen: 空資料是空資料 伺服有問題是伺服有問題 這兩回事 06/24 11:43
121F:→ strlen: 只要API能正常運作 都不應該吐200以外的東西 06/24 11:43
122F:→ strlen: 空資料只是目前沒有東西 不代表之後也不會有東西 06/24 11:43
123F:→ strlen: API資料狀態 那是連線狀態確認沒問題之後的事 06/24 11:44
124F:→ strlen: 資料狀態 與 連線狀態 是完全不同的東西 06/24 11:45
125F:推 hegemon: 樓上你可以用204更精確 06/24 11:48
126F:推 Romulus: 可是404和連線狀態沒有半毛錢關係 06/24 16:29
127F:推 askacis: 200,body看資料格式,xml的話就帶空元素之類的方式 06/25 12:08
128F:推 nayeonmywife: 基本上200是代表回傳成功,至於有沒有資料就裝在dat 06/25 13:54
129F:→ nayeonmywife: a吧,目前是這樣規範 06/25 13:54
130F:推 npkalala: 404 Not found不能只看字面意思吧,要了解一下內涵 06/25 17:39
131F:→ strlen: 樓上是不是以為連線狀態指得是你的網路狀態? 06/25 22:16
132F:→ strlen: 我說的是連到該伺服器API的狀態好嗎? 06/25 22:16
133F:→ strlen: 「狀態」也不一定只是連不上 還可能有其他種狀況 06/25 22:20
134F:推 bill0205: 404不代表不用在body資料吧 預設格式還是要有 06/26 11:16
135F:→ honestyer: 用404太怪異了吧..200 回status 06/28 14:55
136F:推 noiretblanc: 200 06/29 20:21
137F:推 jl40: 424 06/30 22:20
138F:推 shimachokong: 200,沒有那個 api才是 404 07/02 18:34
139F:→ hannah5269: 404新理解.. 07/08 03:13







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP