php - pagina - http/1.1 200 ok
Devolver los códigos de estado de HTTP con una API de reposo (1)
Estoy construyendo mi propia API de descanso en PHP para la práctica. Puedo evaluar el código http enviado a mi API (publicar, poner, eliminar, obtener). Pero cuando envío mi respuesta, realmente solo estoy imprimiendo un json. Por ejemplo, construyo una respuesta en mi api como esta
public function actionTest()
{
$rtn=array("id":"3","name":"John");
print json_encode($rtn);
}
No estoy manipulando los encabezados de todos modos. De la lectura de stackoverflow, entiendo que debería devolver los códigos de respuesta http para que coincidan con mis resultados de API. ¿Cómo puedo construir en mi API y devolver los códigos de respuesta? Simplemente no entiendo cómo puedo hacerlo porque ahora mismo estoy imprimiendo un json.
No estoy preguntando qué códigos devolver. Solo quiero saber cómo devolver los códigos en general.
Podrías volver a pensar tu código de esta manera
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);
}
}
Básicamente, antes de transmitir la salida (los datos JSON), puede establecer el código de estado HTTP por la función http_response_code($code)
.
Y sobre su pregunta adicional en el comentario, sí, imprimir los datos JSON es la forma correcta.