Ich schreibe und API und ich werfen und Ausnahme, die eine Methode aufruft, um die Kopfzeile zu komponieren. Wenn es nicht Inhalt ist werfe ich eine Ausnahme mit einer benutzerdefinierten Nachricht und Code 204.PHP-Header zeigt keine benutzerdefinierte Nachricht, wenn der Code 204 ist
throw new Exception("my message", 204);
Und die Methode, die den Header
if ($status_codes[$code] !== null) {
$status_string = $code . ' ' . $status_codes[$code];
header($_SERVER['SERVER_PROTOCOL'] . ' ' . $status_string, true, $code);
if ($code != 200) die(json_encode(["code" => $code, "message" => $message]));
}
Das Problem komponiert ist, dass wenn ich den Code 204 I Zeige nur den Status der Antwort, die ein 204 No content
ist, aber meine Nachricht mit dem Code wird nicht angezeigt. Ich habe versucht mit dem Code 400 und es zeigt die benutzerdefinierte Nachricht.
Danke für den Link, jetzt verstehe ich es. Kann ich dann einen anderen Code verwenden, der für die Rückgabe einer Nachricht geeignet ist, wenn keine Daten von der Datenbank gefunden werden? – abaracedo
Das ist richtig, Sie können. Wenn Sie jedoch bei 204 bleiben, dann weiß jeder konforme API-Client, dass er keine Textnachricht erwartet, also ist das auch in Ordnung. –
Okey, nochmals vielen Dank. – abaracedo