Skip to content

VitorAraujo63/fastify-api-supabase

Repository files navigation

API de Vídeos

Uma API RESTful simples para gerenciar uma coleção de vídeos, construída com Node.js, Fastify e integrada com Supabase.

✨ Funcionalidades

  • CRUD completo para vídeos (Criar, Ler, Atualizar, Deletar).

  • Busca de vídeos por título. (Em desenvolvimento)

  • Documentação interativa com Swagger (OpenAPI).

🛠️ Tecnologias Utilizadas

  • 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.

🚀 Começando

Siga estas instruções para configurar e rodar o projeto em seu ambiente local.

Pré-requisitos

  • Node.js (versão 18 ou superior)

  • npm (geralmente vem com o Node.js)

  • Uma conta e um projeto no Supabase

1. Clonar o Repositório

git clone https://github.com/VitorAraujo63/fastify-api-supabase.git
cd nome-do-diretorio

2. Instalar Dependências

npm install

3. Configurar Variáveis de Ambiente

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 videos no Supabase tenha as colunas: id (uuid, primary key), title (text), description (text), e duration (integer).

4. Rodar a Aplicação

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.

📚 Documentação da API

A documentação completa e interativa da API é gerada automaticamente pelo Swagger.

Após iniciar o servidor, acesse:

http://localhost:3333/docs

Resumo dos Endpoints

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.

Exemplo de Corpo (Body) para POST e PUT:

{
  "title": "Aprendendo a usar a API",
  "description": "Este é um vídeo de exemplo.",
  "duration": 120
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors