Skip to content

Oseiasdfarias/full_fast_api

Repository files navigation

Sumário

Fast API

Visão Geral

API desenvolvida no curso ministrado pelo canal Live de Python ...


Requisitos do projeto

Configuração do Ambiente

Recomendo que use o pyenv para instalar a versão 3.12.3 do Python.

caso não tenha o pyenv instalado em sua máquina, você pode instala-lo usando o pipx, após instalar o pipx basta rodar o seguinte comando.

❯ pipx install pyenv

Agora com o pyenv instalado, basta roda o seguinte comando para instalar a versão 3.12.3 do Python.

❯ pyenv install 3.12.3

para definir a versão do python em seu projeto, você deve acessar pelo terminal o caminho do seu projeto e roda o comando abaixo em seu terminal.

❯ pyenv local 3.12.3 

pronto, agora você tem o Python 3.12.3 definido para seu projeto.

Instalando as dependências do Projeto

Para instalar as dependências usando o poetry basta executar o seguinte comando em seu terminal dentro da pasta raiz do projeto:

❯ poetry install

Caso queira instalar usando o pip, use o comando abaixo:

❯ pip install -r requirements.txt

Warning

Certifique-se que seu ambiente esteja ativado.


Rodando Códigos

Para executar os códigos, utilizaremos o taskipy, uma biblioteca em Python que facilita a criação de comandos para a execução de diversas ações.

Formatação do Código

Antes de executar o código é importante formatá-lo usando os pradrão definidos pela pep8, para fazer isso de forma automática basta rodar o seguinte comando no terminal:

❯ task format

Rodando os Testes

Para rodar os testes basta executar o seguinte comando com o ambiente virtual ativado:

❯ task test

Saída:

All checks passed!
============================= test session starts =============================
platform linux -- Python 3.12.3, pytest-8.2.2, pluggy-1.5.0 -- /home/osfarias/workspace/workspace_python/fast_api/.venv/bin/python
cachedir: .pytest_cache
rootdir: /home/osfarias/workspace/workspace_python/fast_api
configfile: pyproject.toml
plugins: anyio-4.4.0, cov-5.0.0
collected 19 items

tests/test_app.py::test_read_root_deve_retornar_ok_e_ola_mundo PASSED   [  5%]
tests/test_app.py::test_create_user_username_existing PASSED            [ 10%]
tests/test_app.py::test_create_user_email_existing PASSED               [ 15%]
tests/test_app.py::test_create_user PASSED                              [ 21%]
tests/test_app.py::test_read_users PASSED                               [ 26%]
tests/test_app.py::test_read_users_with_user PASSED                     [ 31%]
tests/test_app.py::test_read_user PASSED                                [ 36%]
tests/test_app.py::test_read_user_with_user PASSED                      [ 42%]
tests/test_app.py::test_update_user PASSED                              [ 47%]
tests/test_app.py::test_update_user_not_found PASSED                    [ 52%]
tests/test_app.py::test_delete_user PASSED                              [ 57%]
tests/test_app.py::test_delete_user_not_oermission PASSED               [ 63%]
tests/test_app.py::test_delete_user_not_found PASSED                    [ 68%]
tests/test_app.py::test_get_token PASSED                                [ 73%]
tests/test_app.py::test_get_token_incorret_email PASSED                 [ 78%]
tests/test_app.py::test_get_token_incorret_password PASSED              [ 84%]
tests/test_db.py::test_create_user PASSED                               [ 89%]
tests/test_security.py::test_jwt PASSED                                 [ 94%]
tests/test_security.py::test_jwt_invalid_token PASSED                   [100%]

---------- coverage: platform linux, python 3.12.3-final-0 -----------
Name                   Stmts   Miss  Cover
------------------------------------------
fast_api/__init__.py       0      0   100%
fast_api/app.py           61      0   100%
fast_api/database.py       4      0   100%
fast_api/models.py        12      0   100%
fast_api/schemas.py       17      0   100%
fast_api/security.py      40      3    92%
fast_api/settings.py       4      0   100%
------------------------------------------
TOTAL                    138      3    98%

Rodando a API

❯ task run

Saída:

Acesando a documentação da API

A página localhost:8000/docs do FastAPI é uma interface gerada automaticamente pela biblioteca que fornece uma documentação interativa para sua API. Baseada no Swagger UI, esta página permite que desenvolvedores visualizem e testem todas as rotas e endpoints da API diretamente no navegador. Cada endpoint é detalhado com informações sobre métodos HTTP suportados, parâmetros de entrada, respostas possíveis e modelos de dados. A funcionalidade interativa permite enviar requisições e visualizar as respostas, facilitando a verificação e o debugging da API durante o desenvolvimento. Essa documentação dinâmica é uma ferramenta poderosa para garantir que a API esteja funcionando conforme o esperado e para melhorar a produtividade dos desenvolvedores.

Dados no Banco de Dados

A imgem abaixo é a visalização dos dados usando o DBeaver, foi usando o SQLite como banco de dados para perssistir os dados.


🎥 Rede Social

About

Projeto completo com Fast API do Python.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published