Construção de uma API Simples em Python
com FastAPI
Integração com Banco de Dados MySQL
Prof.: Dr. Luís Carlos Costa Fonseca
Repositório Git com os códigos da aplicação:
https://github.com/lccfonseca/agendapy
Agenda
●
O que é o FastAPI? ●
Definindo o Modelo de
●
Pré-requisitos; Dados;
●
Um pouco sobre Arquitetura;
●
Criando a tabela;
●
Criando o Banco de Dados;
●
Configurando a API;
●
Estrutura do projeto;
●
Operações CRUD;
●
Configurando o Banco de
●
Documentação Automática;
Dados; ●
Conclusão.
O que é FastAPI?
●
Definição:* FastAPI é um framework moderno e rápido para
construir APIs com Python 3.7+.
●
Principais Características:
●
Alta performance (baseado em Starlette e Pydantic)
●
Suporte a anotações de tipo
●
Geração automática de documentação
Pré-requisitos
●
Python: Versão 3.7 ou superior
●
Instalação do FastAPI, Uvicorn e
SQLAlchemy:
●
bash
●
pip install fastapi uvicorn
sqlalchemy mysql-connector-
python
●
Banco de Dados: MySQL deve
estar instalado e em execução.
Um pouco sobre Arquitetura
Criando o Banco de Dados
●
Apesar deste curso ter como pré-requisito uma instancia
instalada da SGBD MySQL, abaixo temos o comando docker
para a criação de um container Docker a partir de uma imagem
do MariaDb:
– sudo docker run --name mariadb-aulas -e
MYSQL_ROOT_PASSWORD=12345678 -p 3306:3306 -d
docker.io/library/mariadb:latest
– sudo docker start mariadb-aulas
Criando o Banco de Dados
●
A configuração do banco de
dados MySql ou MariaDb são
pré-requisitos do curso;
●
No repositório do projeto
existe um arquivo “agenda.sql”
que serve para gerar a tabela
utilizada na aplicação;
●
A execução dele foi no
MySqlWorkbench.
Estrutura do Projeto
●
Estrutura Inicial:
– main.py: Lógica principal da
API
– database.py: Configuração
do banco de dados
– model.py: Definição do
modelo de dados
Configurando o Banco de Dados
●
database.py
Definição do Modelo de Dados
●
model.py
●
Essa classe
representa a
tabela de
contatos no
banco de
dados.
Criando a Tabela
●
Código adicional no main.py:
●
Python
●
Descrição: Este código cria a tabela contatos no banco de dados.
Configurando a API
Operação CRUD – Criar
Operação CRUD – Ler
Operação CRUD – Atualizar
Operação CRUD – Excluir
Executando a Aplicação
●
Comando para Executar:
– Executa a aplicação com recarregamento automático em
desenvolvimento.
– uvicorn main:app --reload
Documentação Automática
●
FastAPI gera documentação
interativa automaticamente.
●
URLs:
– Swagger UI:
http://127.0.0.1:8000/docs
Interface gráfica para testar os
endpoints.
– ReDoc:
http://127.0.0.1:8000/redoc
Documentação dos endpoints.
Conclusão
●
Aprendemos a construir uma API simples com FastAPI,
integrada a um banco de dados MySQL, implementando as
operações CRUD na tabela de contatos.
●
Próximos Passos: Explore validações, autenticação e testes.
Sugestões de Leitura
●
https://fastapi.tiangolo.com/
●
https://mariadb.org/
●
https://www.sqlalchemy.org/
●
https://www.w3schools.com/tags/ref_httpmethods.asp
●
https://www.devmedia.com.br/servicos-restful-verbos-http/3710
3
●
https://refine.dev/
Obrigado!
●
Perguntas?
●
Contatos:
– [email protected]