Возврат http кодов состояния с API отдыха
Я строю свой собственный API для отдыха в php для практики. Я могу оценить HTTP-код, отправленный на мой API (отправить, положить, удалить, получить). Но когда я отправляю свой ответ, я просто распечатываю JSON. Например, я строю ответ в моем API, как это
public function actionTest()
{
$rtn=array("id":"3","name":"John");
print json_encode($rtn);
}
Я не манипулирую заголовками в любом случае. Из чтения stackru я понимаю, что должен возвращать коды ответов http, чтобы соответствовать моим результатам API. Как я могу построить на своем API и вернуть коды ответа. Я просто не понимаю, как я могу это сделать, потому что сейчас я просто распечатываю JSON.
Я не спрашиваю, какие коды вернуть. Я просто хочу знать, как вернуть коды в целом.
1 ответ
Вы могли бы переосмыслить свой код таким образом
public function actionTest()
{
try {
// Here: everything went ok. So before returning JSON, you can setup HTTP status code too
$rtn = array("id", "3", "name", "John");
http_response_code(200);
print json_encode($rtn);
}
catch (SomeException $ex) {
$rtn = array("id", "3", "error", "something wrong happened");
http_response_code(500);
print json_encode($rtn);
}
}
Как правило, перед потоковой передачей (данными JSON) вы можете установить код состояния HTTP с помощью http_response_code($code)
функция.
А что касается вашего дополнительного вопроса в комментарии, да, печать данных JSON - это правильный путь.