Se você está interessado em construir uma API simples usando o Lithe, você veio ao lugar certo! Neste tutorial, vamos criar, passo a passo, uma API que permite enviar e receber mensagens em um chat. Usaremos roteadores para organizar nosso código de forma modular.
O que você aprenderá
- Configurar um projeto PHP com Lithe.
- Criar um roteador para gerenciar as mensagens do chat.
- Implementar funcionalidades básicas como enviar e receber mensagens.
- Testar a API usando Postman ou Insomnia.
Pré-requisitos
- Conhecimento básico de Lithe e PHP.
- Ambiente de desenvolvimento PHP instalado (com Composer).
- Um editor de código (recomendo o Visual Studio Code).
Instalando o Lithe
Para criar um novo projeto com Lithe, execute o seguinte comando:
composer create-project lithephp/lithephp chat-api
Estrutura do Projeto
Crie a seguinte estrutura de diretórios e arquivos dentro do diretório chat-api
:
chat-api/
│
├── src/
│ ├── routes/
│ │ └── chat.php
│ └── App.php
└── composer.json
Iniciando a Aplicação
No arquivo src/App.php
, configure a aplicação com o seguinte código:
<?php
use function Lithe\Orbis\Http\Router\{router};
$app = new \Lithe\App;
// Roteador para gerenciar as mensagens do chat
$chatRoutes = router(__DIR__ . '/routes/chat');
$app->use('/api/chat', $chatRoutes);
$app->listen();
Criando o Arquivo de Rotas
No diretório src/routes
, crie o arquivo chat.php
para gerenciar as rotas relacionadas ao chat. Adicione o seguinte código:
use function Lithe\Orbis\Http\Router\{get, post};
// Array para armazenar mensagens
$messages = [];
// Rota para obter todas as mensagens
get('/', function ($req, $res) use (&$messages) {
$res->json($messages);
});
// Rota para enviar uma nova mensagem
post('/', function ($req, $res) use (&$messages) {
$user = $req->input('user');
$text = $req->input('text');
if (!$user || !$text) {
return $res->status(400)->json(['error' => 'User and text are required']);
}
$timestamp = (new DateTime())->format('Y-m-d H:i:s');
$message = compact('user', 'text', 'timestamp');
$messages[] = $message;
$res->status(201)->json($message);
});
Testando a API
Agora que sua API está configurada, vamos testá-la usando uma ferramenta como Postman ou Insomnia.
1. Iniciar o Servidor
No terminal, execute o seguinte comando para iniciar o servidor:
php line serve
Você verá a mensagem Servidor rodando na porta 8000
.
2. Testar a Rota de Mensagens
2.1 Obter Todas as Mensagens
- Abra o Postman.
- Crie uma nova requisição
GET
parahttp://localhost:8000/api/chat
. - Clique em Send. Você deverá ver um array vazio inicialmente
[]
.
2.2 Enviar uma Nova Mensagem
- Crie uma nova requisição
POST
parahttp://localhost:8000/api/chat
. - Vá para a aba Body e selecione a opção raw. Escolha o tipo JSON.
- Adicione o seguinte JSON no corpo da requisição:
{
"user": "William",
"text": "Olá, como estão todos?"
}
- Clique em Send. Você deverá receber a mensagem enviada como resposta:
{
"user": "William",
"text": "Olá, como estão todos?",
"timestamp": "2023-10-17 15:30:00"
}
3. Verificar Todas as Mensagens
Faça outra requisição GET
para http://localhost:8000/api/chat
. Você deverá ver a mensagem que acabou de enviar:
[
{
"user": "William",
"text": "Olá, como estão todos?",
"timestamp": "2023-10-17 15:30:00"
}
]
Conclusão
Parabéns! Você criou uma API de chat simples usando o Lithe. Essa API pode ser expandida com funcionalidades como autenticação de usuários, persistência de dados em um banco de dados e muito mais.
Próximos Passos
- Persistência de Dados: Utilize um banco de dados como MySQL ou PostgreSQL para armazenar mensagens permanentemente.
- Autenticação: Adicione autenticação para que apenas usuários autenticados possam enviar mensagens.
- WebSockets: Explore o uso de WebSockets para permitir comunicação em tempo real.
Sinta-se à vontade para compartilhar suas ideias e melhorias nos comentários! Se você gostou deste tutorial, considere deixar uma reação e compartilhar com outros desenvolvedores.
Top comments (2)
Framework promissor. Estrutura enxuta, mas sem deixar de lado os utilitários que agilizam o dia a dia.
Simples como o express e poderoso como o laravel.
Fico feliz que tenha percebido essas qualidades! O Lithe realmente foi projetado com o objetivo de ser uma solução enxuta e prática, mas sem abrir mão dos utilitários que tornam o desenvolvimento mais ágil. A ideia é combinar a simplicidade do Express.js com a potência do Laravel, para que os desenvolvedores tenham uma ferramenta flexível e poderosa ao mesmo tempo. Se precisar de mais informações, a documentação está disponível e pode te ajudar a explorar todos os recursos que o Lithe oferece!