Skip to content

jvras58/BookBridge-API

Repository files navigation

📖 Sobre o Projeto

Este projeto é uma API desenvolvida com flask, focada na resolução de desafio para back-end e implementação dos princípios da RestFul.

🚀 Tecnologias e Ferramentas

O projeto foi criado para aprimorar conhecimentos em python, explorando suas capacidades e integração com flask e dynaconf.

Stack do Projeto

Esta API simples utiliza python, uma linguagem multiparadigma, de tipagem dinâmica e forte, com gerenciamento automático de memória. O objetivo é demonstrar e aprender como estruturar um projeto seguindo os princípios da API RestFul.

Lib Versão
Runtime
Python v3.12.x
Devtime
Docker Engine vx.x.x

Organização do projeto

/
├─📁 .devcontainer     ->  [Configurações do devcontainer]
├─📁 .vscode           ->  [Definições de ambiente para o VSCode]
├─📁 .secrets          ->  [Repo para artefatos de segredos da app]
├─📁 docs              ->  [Artefatos para documentação do repo]
├─📁 migrations        ->  [Artefatos de gerenciamento do banco de dados com o alembic]
├─📁 app               ->  [Implementação da aplicação]
│ │ ├─🐍 startup.py              -> Entrypoint
│ │ ├─📁 commons        ->  [Funções Auxiliares]
│ │ │  ├─🐍 utils.py             -> Arquivos utils para aplicação
│ │ │  ├─🐍 swagger.py             -> Arquivos de configuração e Documentação do Swagger
│ │ │    ...
│ │ ├─📁 config        ->  [configurações para aplicação]
│ │ │  ├─🐍 base.py              -> Arquivos de Inicialização para aplicação
│ │ │  ├─🐍 settings.py            -> Módulo de configurações do sistema
│ │ │    ...
│ │ ├─📁 database      ->  [configurações para o banco de dados]
│ │ │  ├─🐍 migrate.py              -> Módulo Inicialização da extensões flask migrate
│ │ │  ├─🐍 session.py              -> Módulo para gerenciar a sessão do banco de dados
│ │ │    ...
│ │ ├─📁 models        ->  [Modelos para o banco de dados]
│ │ │  ├─🐍 xxx.py              -> Módulo para modelos xxxx
│ │ │    ...
│ │ ├─📁 resources     ->  [Contém as classes com as logicas da API]
│ │ │  ├─📁 xxxx        ->  [Logicas de router e controllers xxxxx]
│ │ │     ├─🐍 xxxxx.py              -> contêm a lógica de manipulação de xxxxx
│ │ │     ├─🐍 xxxxx_router.py       -> contêm a lógica das rotas que define o Blueprint
│ │ ...
├─📄 .gitignore
├─📄 Makefile          ->  Automações para o ambiente
├─📄 pyproject.toml    ->  Definições para o projeto
├─📄 settings.toml     ->  Configurações do ambiente com o FlaskDynaconf
├─📄 README.MD

Montando o ambiente

Este repositório esta organizando em um devcontainer. E para instacia-lo no VSCODE é recomendado as seguintes configurações:

Extenções recomendadas

Docker Engine

É obrigatório ter o Docker Engine já instalado e cunfigurado. Para mais informações de como instalar o Docker Engine em seu SO, ver em:

  • Instruções para instalação do Docker Engine: Ver o link

Procedimento para instanciar o projeto no VSCODE

  1. Com o pack de extenções instalado,
  2. Realize o clone/fork deste repositório,
  3. Abra o diretorio deste repositorio no VSCODE como um projeto,
  4. Use o Comando Dev Containers: Reopen in Container da paleta de comandos do VSCODE. (F1, Ctrl+Shift+P).

Depois da compilação do container o VSCode abrirá o repositório em um ambiente encapsulado e executando diretamente de dentro do container como configurado nas definições do /.devconainer.

Procedimento para iniciar

  1. inicie o ambiente virtual do poetry && instale as dependencias definidas no pyproject.toml
$> make venv
  • Pronto agora voce esta pronto para começar a usar!

Principais comandos:

iniciar banco:

$> make upgrade 

Levantar a aplicação

$> make dev 

Adcionar novas dependencias

# Adicionar uma nova lib para o runtime do projeto
$> poetry add <<nome_da_lib>>

# Adicionar uma nova lib para o ambiente de desenvolvimento
$> poetry add <<nome_da_lib>> --group dev

Alguns comandos interessantes no Makefile se precisar:

Para ver todos os comandos disponíveis no Makefile, clique aqui.

About

Repositorio para resolução de teste pratico com flask implementação RestFul

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published