Em diversas aplicações precisamos retornar o conteúdo não só no formato JSON, mas com o cabeçalho e também com um status http code específico. Nesse artigo você confere como criar uma função simples e funcional para fazer um response json.
Primeiramente precisamos definir o conteúdo a ser convertido para um JSON, em seguida, devemos definir que o cabeçalho da página seja do tipo application/json, por fim, definimos o http status code.
Veja a função abaixo devidamente comentada.
/**
* Imprime um array ou objeto em JSON
*
* @param mixed $el
* @param int $httpCode
* @return void
*/
function responseJson($el = null, int $httpCode = 200)
{
//Definimos o cabeçalho com o tipo JSON.
header('Content-Type: application/json', true, $httpCode);
//Definimos o status http code.
http_response_code($httpCode);
//Convertemos e "printamos" o conteúdo em tela
echo json_encode($el);
}
Agora veja o exemplo de utilização.
//Exemplo de utilização
$content = [
'site' => 'SatellaSoft'
];
responseJson($content);
//Exemplo 2
responseJson(5);
//Exemplo 3
responseJson('not exists');
Perceba que na nossa função definimos o status code em dois lugares, uma no header e outra através da função http_response_code. Mantemos nesses dois lugares por redundância, sendo que já tivemos o problema de que no header não funcionava devido a limitação da função no servidor.
Por hora é isso, até a próxima.