News for hackers. Stuff that matters.
Re:API Practices If You Hate Your Customers by paulddraper on Wednesday December 11, 2019 @06:22PM (#21767859)
For example, suppose you want to distinguish between a missing/deleted resource /myuser/23123 and a completely invalid query /muser/23123.

Both of these are 404 (or 410 for permanent caching) responses according to HTTP, though they have very different reasons for "non-existance".

Re:API Practices If You Hate Your Customers by wool_gather on Wednesday December 11, 2019 @06:30PM (#21767910)
No, the "completely invalid query" is 400.

404 is only for "the request makes sense but that specific resource doesn't exist".

Re:API Practices If You Hate Your Customers by paulddraper on Wednesday December 11, 2019 @07:47PM (#21768363)
400 is a very generic error. It is often used to complain about problems with the request body.

Considering how brief the HTTP RFC is, your interpretation is I think as good as any, if very uncommon. (Not what Django, Rails, Flask, etc. do).

Re:API Practices If You Hate Your Customers by akvadrako on Thursday December 12, 2019 @03:22AM (#21770251)
In this case it’s a 404 because the query URL pattern doesn’t exist - the most common cause of 404s.
Re:API Practices If You Hate Your Customers by pavel_lishin on Thursday December 12, 2019 @11:29AM (#21773277)
Same thing, no? If I ask for /api/user/238885 and I get a 404 back, it's because the resource "user" with ID of 238885 doesn't exist. If I ask for /api/banana/wharrgarbl, it's because the resource "banana" with the ID of "wharrgarbl" doesn't exist.