Giter VIP home page Giter VIP logo

python-fastapi-rest's Introduction

Python FastAPI REST

Python
python: 3.9.2
pip: 20.3.1
  1. Instalação
  2. Inicializando a aplicação
    1. Local
    2. Docker
  3. Testes
    1. Local
    2. Docker
  4. Estrutura do Projeto
    1. Sobre src/controllers
    2. Sobre src/services
    3. Sobre src/tests
  5. Swagger
  6. Dependências do Projeto

Instalação

Para instalar as dependências do projeto utilize o comando demonstrado a seguir na raiz do diretório:

  pip install -r requirements.txt

Inicializando a aplicação

Local

Para inicializar a aplicação localmente utilize o comando demonstrado a seguir na raiz do diretório:

  uvicorn src.main:app --reload --port 8080

Docker

Para inicializar a aplicação através do Docker utilize o comando demonstrado a seguir na raiz do diretório:

  sudo docker-compose up -d --build

Caso o container não inicialize, utilize o comando demonstrado a seguir na raiz do diretório:

  sudo docker-compose up -d

Testes

Local

Para inicializar os testes localmente utilize o comando demonstrado a seguir na raiz do diretório:

  pytest src/tests/test.py

Docker

Para inicializar os testes através do Docker utilize o comando demonstrado a seguir na raiz do diretório:

  sudo docker-compose exec app pytest src/tests/test.py

Estrutura do projeto

└── src
    ├── controllers
    │   ├── healthcheck.py
    │   ├── home.py
    ├── services
    │   ├── healthcheck.py
    │   ├── home.py
    └── tests
    |    └── test.py
    ├── main.py

Diretório src/controllers

O diretório de src/controllers é responsável por controlar a comunicação entre as requisições feitas do cliente para com a aplicação.

Diretório src/services

O diretório src/services é responsável pela manipulação dos dados que serão recebidos e enviados pelos controllers.

Diretório src/tests

O diretório src/tests contém os testes das entradas e saídas dos controllers.

Swagger

O FastAPI já vêm com o Swagger embutido, sendo /docs uma versão mais simplificada e /redoc uma versão mais completa. Para adicionar as informações basta apenas a criação dos endpoints e então é possível visualizá-los através dos endereços demonstrados a seguir:

Dependências do Projeto

  • fastapi: Framework para criação das APIs REST.
  • fastapi-health: Biblioteca para realizar healthcheck das rotas.
  • uvicorn: Servidor ASGI.
  • pytest: Framework responsável por automatizar testes.
  • requests: Biblioteca para realizar requisições HTTP/HTTPS.

python-fastapi-rest's People

Contributors

analimazn avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.