Skip to content

Repository files navigation

Aplicação blog - frontend + api + banco de dados

Opção 1. (recomendado)

Executando com Docker

Esta e a forma principal para subir a aplicacao.

  1. Construir e iniciar os containers:
docker compose up --build
  1. Acessar a aplicacao:
  1. Para parar os containers:
docker compose down

Opção 2.

Executando localmente com gerenciador de pacotes uv (alternativa)

Necessário ter o gerenciador de pacotes uv instalado. uv é a versão moderna e mais rápida do pip

Use esta opcao se preferir rodar sem Docker.

  1. Instalar dependencias:
uv sync
  1. Iniciar o servidor FastAPI:
uv run fastapi dev --host 0.0.0.0 main.py
  1. Acessar a aplicacao:

Estrutura de rotas

As rotas estao divididas entre endpoints HTML (templates) e endpoints da API.

Rotas HTML

Metodo Rota Descricao
GET / Pagina inicial com lista de posts
GET /posts Alias da pagina inicial com lista de posts
GET /posts/{id} Pagina HTML de um post especifico
GET /users/{user_id}/posts Pagina HTML com posts de um usuario

Rotas da API - Posts

Metodo Rota Descricao
GET /api/posts Lista todos os posts
POST /api/posts Cria um novo post
GET /api/posts/{id} Retorna um post especifico
PUT /api/posts/{id} Atualiza um post
DELETE /api/posts/{id} Remove um post

Schema de criacao de post (POST /api/posts):

{
	"title": "Titulo do post",
	"content": "Conteudo do post",
	"user_id": 1
}

Schema de atualizacao de post (PUT /api/posts/{id}):

{
	"title": "Novo titulo",
	"content": "Novo conteudo"
}

Rotas da API - Usuarios

Metodo Rota Descricao
GET /api/users Lista todos os usuarios
POST /api/users Cria um novo usuario
GET /api/users/{user_id} Retorna um usuario especifico
PUT /api/users/{id} Atualiza informacoes do usuario
DELETE /api/users/{id} Remove um usuario
GET /api/users/{user_id}/posts Lista posts de um usuario

Schema de criacao de usuario (POST /api/users):

{
	"username": "johndoe",
	"email": "john@example.com"
}

Schema de atualizacao de usuario (PUT /api/users/{id}):

{
	"image_file": "nome_arquivo.jpg"
}

Tratamento de erros

  • Rotas iniciadas com /api retornam erros em JSON.
  • Rotas HTML retornam pagina de erro (template 404.html).
  • Erros de validacao (422) seguem o comportamento acima, conforme tipo da rota.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages