Criando um método que imprime JSON como resposta com PHP

Vamos criar um simples método PHP que devolve o conteúdo em JSON, com cabeçalho e código de resposta.

Publicado em

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.
 

Gunnar Correa
Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. Fundador da SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.

Deixe um comentário
Aguarde...