Skip to content

Conversation

rhbebeto
Copy link

@rhbebeto rhbebeto commented Sep 7, 2025

Olá, equipe Watio!

Este Pull Request contém a minha implementação para o desafio de estágio (API CRUD de Filmes).

O projeto implementa uma API RESTful completa para o cadastro e leitura de filmes, atendendo a todos os requisitos solicitados e utilizando as tecnologias sugeridas (FastAPI, Docker e SQLAlchemy).

Funcionalidades Implementadas

A API expõe as seguintes rotas, conforme solicitado:

  • POST /filmes: Cadastra um novo filme.
  • GET /filmes: Retorna todos os filmes cadastrados.
  • GET /filmes/{id}: Retorna um filme específico por ID (com tratamento para 404 caso não exista).
  • GET /: Rota raiz com uma mensagem de boas-vindas.

Tecnologias Utilizadas

  • API: FastAPI (com documentação automática Swagger/ReDoc).
  • Containerização: Docker e Docker Compose.
  • Banco de Dados (Persistência): SQLAlchemy (ORM) conectado a um banco SQLite.
  • Validação de Dados: Pydantic (integrado ao FastAPI).

Persistência de Dados

Para garantir que os dados sobrevivam após o contêiner ser parado ou destruído (conforme o teste docker-compose down), a aplicação foi configurada para salvar o arquivo do SQLite (filmes.db) dentro de um volume nomeado do Docker (api_data), gerenciado pelo docker-compose.yml.


Como Executar a Aplicação

  1. Garanta que o Docker e o Docker Compose estejam instalados e rodando.

  2. Na raiz do projeto (onde o docker-compose.yml está localizado), execute o comando:

    docker-compose up --build

Como Testar

Após a execução do comando acima, a API estará disponível:

  • Documentação Interativa (Swagger): http://localhost:8000/docs
  • Rota Raiz: http://localhost:8000/

Obrigado pela oportunidade!

Atenciosamente,
Roberto Henrique Duarte

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant