Skip to content

teca-api is a Python app using Quart, with Quart-Auth for auth and Quart-Schema for validation. It leverages Tortoise-ORM for DB interactions, Aerich for migrations, and PostgreSQL as the DB. Docker handles containerization. API docs are autogenerated and accessible via local endpoints.

Notifications You must be signed in to change notification settings

victorlcastro-dsa/teca-api

 
 

Repository files navigation

Tecnologias Utilizadas

  • Python: Linguagem principal da aplicação.
  • Quart: Framework assíncrono baseado no Flask.
  • Quart-Auth: Quart-Auth is an extension for Quart to provide for secure cookie authentication (session management).
  • Quart-Schema: Quart-Schema is a Quart extension that provides schema validation and auto-generated API documentation.
  • Tortoise-ORM: ORM para gerenciar as interações com o banco de dados.
  • Aerich: Aerich is a database migrations tool for TortoiseORM, which is like alembic for SQLAlchemy, or like Django ORM with it's own migration solution.
  • PostgreSQL: Banco de dados relacional.
  • Docker: Ferramenta de contêinerização para facilitar o deployment e a execução da aplicação.

Instalação

Rodando Localmente

  1. Crie um ambiente virtual:

    python3 -m venv venv
    source venv/bin/activate
  2. Instale as dependências:

    pip install -r requirements.txt
  3. Inicie a aplicação:

    python run.py

Rodando com Docker

  1. Construa a imagem Docker:

    docker-compose build
  2. Inicie os contêineres:

    docker-compose up -d

Migrações

Para executar as migrações do banco de dados, utilize os seguintes comandos:

docker exec -it <container_id> /bin/sh
aerich init -t app.database.config.TORTOISE_ORM
aerich init-db
aerich migrate
aerich update

Documentação

  • A documentação da API é gerada automaticamente através do Quart-Schema.
    • Acesse a documentação em http://localhost:5000//openapi.json.
    • Acesse a documentação em http://localhost:5000/redocs.
    • Acesse a documentação em http://localhost:5000/scalar.
    • Acesse a documentação em http://localhost:5000/docs.

Link para estrutura de:

Testes

REST Client (extensao):

  1. Instale a extensao "REST Client" no vscode adicione no settings.json

    "rest-client.environmentVariables": {
      "$shared": {
         "prodToken": "foo",
         "nonProdToken": "bar",
       },
      "local": {
         "version": "v1",
         "host": "localhost",
         "port": "5000",
         "token": "{{$shared nonProdToken}}",
         "secretKey": "dev-secret"
      },
      "production": {
         "host": "example.com", // teca-coif.com.br
         "token": "{{$shared prodToken}}",
         "secretKey" : "prodSecret"
      }
    },

    Em seguida mude para o environment Local

  2. Na pasta ./tests/rest-client esta os .http para realizar as chamadas nos endpoints


About

teca-api is a Python app using Quart, with Quart-Auth for auth and Quart-Schema for validation. It leverages Tortoise-ORM for DB interactions, Aerich for migrations, and PostgreSQL as the DB. Docker handles containerization. API docs are autogenerated and accessible via local endpoints.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.7%
  • Other 0.3%