Servidor JSON simples em PHP (parte 1)

Escrito por

Hoje quero mostrar para vocês como criar um servidor JSON utilizando o PHP. Mas por que PHP e não JavaScript? Porque ainda é uma linguagem que tem hospedagem muito fácil de achar até mesmo gratuitamente. Se você já tiver um WordPress ou um site que suporte PHP já vai conseguir rodar isso, assim é possível rodar, por exemplo, projetos de teste como nosso Minhas Séries, que foi feito em ReactJS. A ideia é bem simples, apenas dois métodos por enquanto. Então vamos criar um arquivo chamado db.JSON e dentro dele vamos colocar assim:

1{
2 “series”: [],
3 “genres”:[]
4}

Esse é nosso banco de dados. Feito isso, vou criar um index.php e adicionar alguns detalhes, primeiro dividir o que vier como get na variável e em seguida carregar o banco:

1<?php
2$path = explode('/', $_GET['path']);
3$contents = file_get_contents('bd.json');
4$json = json_decode($contents, true);
5$method = $_SERVER['REQUEST_METHOD'];
6header('Content-type: application/json');
7$body = file_get_contents('php://input');

Agora que já lemos tudo, temos que adicionar um if. Caso o method for get, vamos apenas retornar o Json:

1if($method === 'GET'){
2 if($json[$path[0]]){
3 echo json_encode($json[$path[0]]);
4 }else{
5 echo '[]';
6 }
7}

Com isso, caso tivermos uma série dentro do campo séries, ele retornará essa série. Além disso, podemos inserir também:

1if($method === 'POST'){
2 $jsonBody = json_decode($body, true);
3 $jsonBody[id] = time();
4 if(!$json[$path[0]]){
5 $json[$path[0]] =  [];
6 }
7 $json[$path[0]][] = $jsonBody;
8 echo json_encode($jsonBody);
9 file_put_contents('db.json', json_encode($json));
10}

Caso não exista aquele caminho, vamos criar com um vazio, inserir um item novo e salvar. Caso olharmos o banco depois disso, temos a adição do novo item, caso usarmos o get novamente ele puxará todas as séries que existe lá mais a que foi adicionada por último. Você pode subir esse arquivo e o DB para o servidor que suporte PHP.

Confira o video:

Deixe suas dúvidas e sugestões nos comentários. Curta o DevPleno no Facebookinscreva-se no canal e não se esqueça de cadastrar seu e-mail para não perder as novidades.  Abraço!

Evolua mais rápido

Junte-se a milhares de desenvolvedores no nosso time de alunos premium e alcance mais rápido o próximo nível da sua carreira.

Ver cursos Premium