Retornar JSON como resposta no Laravel

JSON é um dos formatos mais comum e usual para entregas de respostas em aplicações web.

PDO com PHP: Aprenda a fazer um CRUD com MySQL

Um dos formatos para entrega de dados na Web é o JSON, comumente implementando para entregas de APIs como uma alternativa ao XML. Além do formato, também é importante definir o HTTP status code, que segue uma convenção e tem diferentes significados.

É possível entregar o JSON apenas com o comando echo, mas isso pode não funcionar corretamente e nem é o recomendado. Devemos definir também o content-type como application/json e informar o HTTP status code como já citado acima.

Para o nosso exemplo, vamos utilizar um array contendo informações de um produto qualquer, mantendo todas as informações a serem convertidas para JSON e prontas para ser entregue.

No código abaixo você confere o trecho de código utilizado para a entrega do JSON, note que utilizamos o método response seguido do método json. No método json passamos como parâmetro o conteúdo na qual desejamos converter e entregar.

Não devemos nos esquecer de utilizar a instrução return, ela é a responsável por garantir que os métodos utilizados imprima o conteúdo na tela.

Perceba que definimos o código 200 no segundo parâmetro do método JSON, informando assim que o servidor recebeu a solicitação, processou e retornou corretamente. Existem vários HTTP status code, como o 404, que informa que o conteúdo ou página não foi encontrado.

public function index()
{
        $data = [
            'product_info' => [
                'name'   => 'Mouse Gamer',
                'price'  => 199.80,
                'amount' => 3
            ],
            'status_order' => 'waiting'
        ];

        return response()->json($data, 200);
}

Uma vez que nossa aplicação esteja retornando o conteúdo em JSON, você pode abrir qualquer cliente para uso de API ou até mesmo o navegador no Modo Desenvolvedor > Network, conferindo e garantido que o content-type seja application/json.

Finalizamos mais um artigo, nos vemos no próximo.