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:
{
“series”: [],
“genres”:[]
}
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:
<?php
$path = explode('/', $_GET['path']);
$contents = file_get_contents('bd.json');
$json = json_decode($contents, true);
$method = $_SERVER['REQUEST_METHOD'];
header('Content-type: application/json');
$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:
if($method === 'GET'){
if($json[$path[0]]){
echo json_encode($json[$path[0]]);
}else{
echo '[]';
}
}
Com isso, caso tivermos uma série dentro do campo séries, ele retornará essa série. Além disso, podemos inserir também:
if($method === 'POST'){
$jsonBody = json_decode($body, true);
$jsonBody[id] = time();
if(!$json[$path[0]]){
$json[$path[0]] = [];
}
$json[$path[0]][] = $jsonBody;
echo json_encode($jsonBody);
file_put_contents('db.json', json_encode($json));
}
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 Facebook,
inscreva-se no canal e não se esqueça de cadastrar seu e-mail para não perder as novidades. Abraço!