Nö. Das ist ein erwartbarer Fehlerfall, genau wie 401 oder 403.
Der Client kann schlicht nicht wissen, ob eine Ressource ĂŒberhaupt existiert oder ob er Zugriff darauf hat. Deshalb muss er diese Antworten verarbeiten können.
Nach HTTP-Spec (RFC 9110) ist die Semantik eindeutig: Wenn eine Ressource nicht existiert, gehört ein 404 zurĂŒck. Wird der Zugriff verweigert, ist es ein 403. Fehlt eine gĂŒltige Authentifizierung, ist es ein 401.
Ein 200 mit leerem Body oder einer leeren Default-Config vermischt Semantik, erschwert Caching, Logging und Fehlerbehandlung und ist letztlich schlechtes API-Design. Wenn eine Collection vorhanden ist, aber gerade keine Elemente enthĂ€lt, dann ist ein 200 mit leerer Liste sinnvoll. Wenn ein Item nicht existiert, ist es ein 404. FĂŒr erfolgreiche Operationen ohne RĂŒckgabekörper ist ein 204 No Content vorgesehen.
Wer bei "nicht vorhanden" ein 200 liefert, bricht die HTTP-Semantik und macht dem Client das Leben unnötig schwer.
Kurzes Beispiel Upload einer Datei ĂŒber eine REST API:
Beim Preflight-Check vor einem Upload fragt der Client die gewĂŒnschte Datei an, zum Beispiel per HEAD /files/report.pdf. Bekommt er ein 200 OK, weiĂ er, dass die Datei bereits existiert und ein Upload sie ĂŒberschreiben wĂŒrde. Kommt dagegen ein 404 Not Found, bedeutet das eindeutig, dass die Ressource noch nicht existiert und der Upload eine neue Datei anlegt. Ein 403 Forbidden oder 401 Unauthorized signalisiert, dass der Zugriff nicht erlaubt ist. Genau hier zeigt sich, warum 404 sinnvoll ist: Der Client kann klar unterscheiden, ob er eine bestehende Version ĂŒberschreibt oder eine neue anlegt, anstatt mit einem leeren 200-Response im Unklaren zu bleiben.
Ansonsten: das Thema wurde in der Vergangenheit schon hinreichend und abschliessend ausdiskutiert:
https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/#h2-3f9e93268ff40