Uma API RESTful simples para gerenciar uma coleção de vídeos, construída com Node.js, Fastify e integrada com Supabase.
-
CRUD completo para vídeos (Criar, Ler, Atualizar, Deletar).
-
Busca de vídeos por título. (Em desenvolvimento)
-
Documentação interativa com Swagger (OpenAPI).
-
Node.js: Ambiente de execução JavaScript.
-
Fastify: Framework web de alta performance.
-
Supabase: Backend como serviço (usado como banco de dados PostgreSQL).
-
@fastify/swagger-ui: Geração de documentação interativa.
-
Docker: Projeto dockerizado com dockerfile.
Siga estas instruções para configurar e rodar o projeto em seu ambiente local.
-
Node.js (versão 18 ou superior)
-
npm (geralmente vem com o Node.js)
-
Uma conta e um projeto no Supabase
git clone https://github.com/VitorAraujo63/fastify-api-supabase.git
cd nome-do-diretorio
npm install
Crie um arquivo chamado .env na raiz do projeto. Você precisará obter as credenciais do seu projeto no painel do Supabase (Project Settings > API).
Copie o conteúdo abaixo para o seu arquivo .env e substitua pelos seus valores:
# .env.example
PORT=3333
# Credenciais do Supabase
SUPA_URL="URL_DO_SEU_PROJETO_SUPABASE"
SUPA_KEY="SUA_CHAVE_ANON_PUBLICA_DO_SUPABASE"
Nota: Certifique-se de que sua tabela
videosno Supabase tenha as colunas:id(uuid, primary key),title(text),description(text), eduration(integer).
Para iniciar o servidor em modo de desenvolvimento (com recarregamento automático):
npm run dev
Para iniciar em modo de produção:
npm start
O servidor estará rodando em http://localhost:3333.
A documentação completa e interativa da API é gerada automaticamente pelo Swagger.
Após iniciar o servidor, acesse:
Método
Rota
Descrição
GET
/videos
Lista todos os vídeos (permite busca).
POST
/videos
Cria um novo vídeo.
PUT
/videos/{id}
Atualiza um vídeo existente.
DELETE
/videos/{id}
Deleta um vídeo.
{
"title": "Aprendendo a usar a API",
"description": "Este é um vídeo de exemplo.",
"duration": 120
}