0% acharam este documento útil (0 voto)
28 visualizações

APIs Com Python e FastAPI

O documento apresenta um guia para a construção de uma API simples em Python utilizando o FastAPI, incluindo integração com um banco de dados MySQL. Ele aborda pré-requisitos, estrutura do projeto, operações CRUD e geração automática de documentação. O repositório Git com os códigos da aplicação está disponível para consulta.

Enviado por

fferreira1560
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
28 visualizações

APIs Com Python e FastAPI

O documento apresenta um guia para a construção de uma API simples em Python utilizando o FastAPI, incluindo integração com um banco de dados MySQL. Ele aborda pré-requisitos, estrutura do projeto, operações CRUD e geração automática de documentação. O repositório Git com os códigos da aplicação está disponível para consulta.

Enviado por

fferreira1560
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 21

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]

Você também pode gostar