Возврат 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 - это правильный путь.

Другие вопросы по тегам