Skip to content

O projeto é uma API backend com diversas funcionalidades, como autenticação de usuário, criação, deleção e curtida de postagens. Segue o contexto de uma rede social e utiliza Python, FastAPI, PostgreSQL, Pytest.

License

Notifications You must be signed in to change notification settings

Fernando-Medeiros/Fast-Flask-API

Repository files navigation

FastAPI

O projeto será modelado no contexto de Rede Social, afim de utilizar CRUD nas rotas e diferentes tipos de relacionamentos do banco de dados.

  • Para construir o projeto isolei cada aplicação em seu próprio ecosistema e embiente virtual.

Resumo


Funcionalidades

Usuários

  • Registro
  • Listagem de perfil
    • Todos
    • Por @username
  • Atualizar dados
  • Acessar os dados da conta
  • Deletar conta

Segurança

  • Autenticação
    • Access token
    • Refresh Token
  • Recuperar senha
    • Email com link e tokenJwt
  • Atualizar senha

Postagens

  • Criação
  • Edição
  • Remoção
  • Listar por id
  • Listagem de posts
  • Listagem por usuário
  • Listagem de posts seguidos (timeline)
  • Curtidas em posts

Comentários

  • Criação
  • Edição
  • Remoção
  • Listar por id
  • Listagem por post
  • Curtidas em comentários

Requisitos

  • Git
  • Python 3.10
  • virtualenv ou semelhante
  • Um editor de códigos como VSCode, Sublime, Vim, Pycharm ...

Ambiente

Crie o ambiente virtual desta aplicação

virtualenv .venv

Ative o ambiente

# Linux Bash
source .venv/bin/activate
# Windows Power Shell
./.venv/bin/activate.ps1

Instale as dependências de desenvolvimento e teste

pip install -r requirements-dev.txt

Iniciar o servidor

Inicie o localhost

uvicorn app:app --reload --factory

Acesse o docs de endpoints do Fastapi em:

http://127.0.0.1:8000/docs#/ ou http://127.0.0.1:8000/redoc/

Testes

cd tests
pytest

Estrutura

.
├── app
│   ├── __init__.py
│   ├── models
│   │   ├── post
│   │   │   ├── __init__.py
│   │   │   ├── like.py
│   │   │   ├── post.py
│   │   │   ├── reply.py
│   │   │   ├── request.py
│   │   │   └── response.py
│   │   ├── token
│   │   │   ├── __init__.py
│   │   │   └── token_model.py
│   │   └── user
│   │       ├── access.py
│   │       ├── birthday.py
│   │       ├── __init__.py
│   │       ├── profile.py
│   │       ├── request.py
│   │       ├── response.py
│   │       └── user.py
│   ├── routers.py
│   ├── routes
│   │   ├── auth.py
│   │   ├── controllers
│   │   │   ├── auth_controller.py
│   │   │   ├── password_controller.py
│   │   │   ├── post_controller.py
│   │   │   ├── reply_controller.py
│   │   │   └── user_controller.py
│   │   ├── password.py
│   │   ├── post.py
│   │   ├── reply.py
│   │   └── user.py
│   └── security
│       ├── backend.py
│       ├── recovery_pwd.py
│       ├── session.py
│       └── token.py
├── docs
│   ├── endpoints.png
│   ├── MBD.png
│   ├── README.md
│   ├── tasks.md
│   └── tests.md
├── LICENSE
├── Procfile
├── requirements-dev.txt
├── requirements.txt
├── runtime.txt
├── setup.py
└── tests
    ├── conftest.py
    ├── __init__.py
    ├── models
    │   ├── __init__.py
    │   ├── test_password.py
    │   ├── test_post.py
    │   ├── test_reply.py
    │   ├── test_token.py
    │   └── test_user.py
    ├── pytest.ini
    ├── routes
    │   ├── __init__.py
    │   ├── test_auth.py
    │   ├── test_password.py
    │   ├── test_post.py
    │   ├── test_reply.py
    │   └── test_user.py
    ├── unity
    │   ├── __init__.py
    │   └── test_token_jwt.py
    └── utils
        ├── client.py
        └── post.py

14 directories, 61 files

Modelagem do banco de dados

About

O projeto é uma API backend com diversas funcionalidades, como autenticação de usuário, criação, deleção e curtida de postagens. Segue o contexto de uma rede social e utiliza Python, FastAPI, PostgreSQL, Pytest.

Topics

Resources

License

Stars

Watchers

Forks

Languages