Re: [討論] API沒資料,回200還是404比較好
其實這都只是參考設計
怎樣處理都行
前端能接的起來就好
我個人則是傾向200或204
原因沒有什麼
在一些前端套件
非2xx是會進exception
正確的URL但是沒有資源
會變成理論上不該exception
但是4xx讓它進入exception
簡單來說在前端的顯示上
沒有資源與真正的404是有所區別的
如果同為404造成前端在處理上
要再區分404的差異
怎樣選擇都是一種trade off
我個人的選擇會是不造成前端麻煩的方式
--
前端淚推
比較麻煩的是有些路由器會劫持 4xx 狀態,然後返回一個自己
的頁面…
然後有些人可能誤解 404 不能返回頁面...
GitHub 這樣的風險就是有可能被路由器或是瀏覽器劫持,可是
作法是合乎規範的,反而 CODE 傳 200 卻給 404 頁面是積習
難改了...
推這篇
200+1不能只自己爽
有時候明明是標準,但也只能跟一堆不標準亂搞的client妥協
web上充滿這種事情啦
不過追根究底來說這也可能是API設計或呼叫API的人想法還不
推
夠適應RESTful,這種資源路徑不是查詢,極端一點來說client
應該本來就知道資源存在才去存取(由別的API取得id、POST或
PUT成功後、HATEOAS...),而不是去試不知道有沒有的資源
是,如同 ssccg 大說的,以 REST 風格設計時,理應不會有
「正確的 URL 卻沒有資源」這件事,因為 URL 就對應資源
使用者想要訪問不存在的路徑,就是想要拿不存在的資源,此
時的 404 既合乎 HTTP Code 的規範也合乎 REST 風格
在開發資源和時程充足的狀況下,發生這種事是要回頭檢視為
什麼會訪問不存在的路徑或者說資源
我覺得原po只是想問查無資料的情境吧?
身為前端,在UX沒有明確設計對於"沒有資源"或"路徑不存在
"要呈現的差異,我傾向以發生問題的時候可以迅速讓技術團
隊知道是什麼原因的設計方式,所以終究還是看團隊約定
Api未必只有前端會call...
Microservice 的情況api大多是其他後端app在call
不管哪邊call都一樣要處理 同樣404後要再分析是錯誤還是空資源
※ 編輯: ripple0129 (49.216.235.228 臺灣), 06/23/2022 19:42:25後端call的時候4xx拋出例外是合理的。
包含url正確但是沒有資源(GetById時)
這樣說好了 如果是前端用的api 然後api去取用了資源的api返回404 這樣要給前端api返回404還是200 如果這個api是混合多種資源產生的資料 又該怎麼返回資料 當使用404時狀況會複雜很多 直白點來說 404符合規範但串接時沒有200方便許多 我可以明確知道是URL有問題還是沒資料
※ 編輯: ripple0129 (49.216.235.228 臺灣), 06/23/2022 20:49:59這沒有簡答。混合多種資源的api應該根據業務邏輯設計api
gateway 來提供服務。上面推文的想法是就單一資源的api
來說的。
返回200你還是得依靠response body 來判斷。跟status cod
e沒有直接的關係
另外,空資源是指search 沒有結果嗎?是的話,200是合理
的。這和GetById是不一樣的操作。
混合多種資源的 API 通常不會採 RESTful 設計
推這篇
有些企業內部的設備會攔截 200 以外的 response
5
4xx狀態表示你的請求本身有誤 例如404表示該資源不存在,(null)而不是空值(empty) 既然你的API本身存在,請求格式也正確 那麼如果結果為空值,該回傳2xx狀態 通常4xx都是來自於錯誤的客戶端請求2
個人拙見 鞭請小力 結論來說 原po的問題 我覺得應該是200 我的觀點偏向404屬於 該api路由、頁面不存在 github來說84
這篇就不以引述的方式回覆了,因為算是對 後續其他人不論在推文中或是回文中的內容 回覆,另外也是針對我自己在前一篇文章中 沒有提到的部分進行說明。 (1) 敘述問題與回答問題13
雖然我不是微軟派的,但是不得不說他們文件寫得真是認真 好入手,廣度,深度也都有一定程度的水準 --- (感謝ssccg提醒,我更正一下內容跟context56
首Po我看有些是狀態碼200,空data 但有些又是做404,然後回個message 數據不存在之類的 這哪一種做法比較好? --33
嗯,我想兩位的建議可以寄信向 GitHub 和 Atlassian 這兩間公司說明一下,或許可以 幫他們團隊縮減人力。 當查詢資源不存在時返回 HTTP Code 404:
48
[請益] 本科在前端(應該有)的優勢?各位前輩好,有點不知道怎麼下標題所以打算在內文詳述。 小弟114CS學士畢業,我知道碩班很讚很棒很重要,但我因為個人因素所以真的沒有打算 往? 我還是很謝謝各位前輩。 畢業前一個月很認真的思考之後想做什麼,想來想去之後決定投入網頁相關的領域,原因29
Re: [請益] 本科在前端(應該有)的優勢?身為一個私立本科肄業全端出身的現役資深前端,認真回答你一下 先給你一些基本概念: 1. 114 本科畢業沒有直接去一流大公司,你必須要有一個很好的理由, 因為每個面試官都會問你「為什麼?」,沒有好的或理性的答案,絕對扣分。 2. 你看那些招募訊息明確寫說需要什麼什麼框架的,多是中小型企業,或是養老單位18
[閒聊] FTX的API被外洩上週有天突然發現ftx裡的錢被亂買亂借了一堆幣 檢查帳號登錄紀錄和提幣歷史都沒異常 沒有被人登錄也沒有錢被轉走 看交易紀錄是先借了一堆AAVE後賣出拿到usd 然後不斷的買高賣低槓桿代幣3
[請益] 前端目標年薪百萬業界方向請益幫代po 希望有經驗的大大可以給建議 對前端開發比較有興趣,目前正在自己學習 JavaScript、上 Udemy 的課程、學習 Node.js 有先看了一下資料目前找前端方面的工作主要都是 React 跟 Vue (好像還有一個 Angular) 因為目前還沒有進業界,如果目標是可以在前端領域到年薪百萬以上的話 請問該選擇 React 還是 Vue 作為學習 哪個天花板會更高1
Re: [請益] 本科在前端(應該有)的優勢?想做web前後端/native app我感覺是可以不用念碩的 其中跟學校所學最沒關的就是web前端 前端我覺得寫得好不好跟學習能力/個性比較有關 願意多想一點的人通常就會寫得比較好 (這種人感覺從好學校出來的會比較多, 所以114是個加分)