Skip to content

salubcosta/flask-sqlalchemy-example-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flask SQLAlchemy Example API

Esse repositório tem por objetivo guardar um exemplo de API Rest com Flask, SQLAlchemy e outros detalhes, como organização de código, melhor desenho e divisão de responsabilidades.

O objetivo deste projeto é estudar arquitetura de APIs, separando responsabilidades em camadas como:

  • routes
  • services
  • repositories
  • models
  • schemas

A API permite registrar e gerenciar projetos de estudo, como por exemplo:

  • projeto estudo API
  • projeto certificação
  • projeto leitura de livro

Tecnologias utilizadas

  • Python
  • Flask
  • Flask-OpenAPI3
  • SQLAlchemy
  • SQLite
  • Logging padrão do Python

Arquitetura

A API segue o padrão de separação em camadas:

CLIENT -> ROUTES -> SERVICES -> REPOSITORIES -> DATABASE

routes

Responsável pelos endpoints da API.

services

Contém a lógica da aplicação.

repositories

Responsável pela comunicação com o banco de dados.

models

Define as tabelas do banco usando SQLAlchemy ORM.

schemas

Define os formatos de entrada e saída da API.

database

Configuração da conexão com o banco SQLite.

logger

Configuração do sistema de logs da aplicação.

Instalação

Clone o repositório:

git clone https://github.com/seu-usuario/flask-sqlalchemy-example-api.git

Entre na pasta do projeto:

cd flask-sqlalchemy-example-api

Crie o ambiente virtual:

python -m venv venv

Ative o ambiente virtual:

  • Windows

    • venv\Scripts\activate
  • Linux / Mac

    • source venv/bin/activate

Instale as dependências:

pip install -r requirements.txt

Executando a API

Execute o arquivo principal:

python app.py

A API será iniciada em:

http://127.0.0.1:5000/

Documentação da API

A documentação OpenAPI estará disponível em:

http://127.0.0.1:5000/openapi

Endpoints

  • Criar projeto
    • POST /projeto

    • Exemplo de body:

{
  "nome_projeto": "Estudo API Flask",
  "descricao": "Projeto para aprender arquitetura de APIs"
}
  • Listar projetos

    • GET /projetos
  • Buscar projeto por ID

    • GET /projeto/{id}
  • Deletar projeto

    • DELETE /projeto/{id}

Logs

Os logs da aplicação são registrados em:

api_debug.log

Eles também são exibidos no terminal durante a execução da API.

Banco de dados

O banco utilizado é SQLite, armazenado no arquivo:

data.db

Objetivo do projeto

Este projeto foi criado com fins de estudo de desenvolvimento backend, focando em:

  • organização de código
  • arquitetura de APIs
  • separação de responsabilidades
  • uso de ORM com SQLAlchemy
  • documentação automática com OpenAPI

Melhorias futuras

  • Implementar endpoint de atualização (PUT)
  • Paginação na listagem de projetos
  • Testes automatizados
  • Autenticação
  • Dockerização da aplicação

About

Repo para exercitar criação e organização de API Rest com Flask

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages