Skip to main content

Uma calculadora básica com FastAPI

Project description

API Calculadora

Esta é uma API simples de calculadora construída usando FastAPI. A API fornece endpoints para realizar operações aritméticas básicas, como adição, subtração, multiplicação e divisão.

Funcionalidades

  • Realizar operações aritméticas básicas:
    • Adição
    • Subtração
    • Multiplicação
    • Divisão
    • Fatorial
    • Exponencial
    • Raiz Quadrada
  • Validação de entrada usando modelos do Pydantic.
  • Lida com divisão por zero de forma adequada, com mensagens de erro apropriadas.

Requisitos

  • Python 3.9 ou superior
  • Dependências listadas no arquivo requirements.txt:
    • fastapi==0.95.2
    • pydantic==1.10.7
    • uvicorn==0.22.0

Instalação

  1. Clone o repositório:

    git clone https://github.com/your-username/calculadora-fastapi.git
    cd calculadora-fastapi
    
  2. Crie um ambiente virtual e ative-o:

    python -m venv venv
    source venv/bin/activate  # No Windows: venv\Scripts\activate
    
  3. Instale as dependências:

    pip install -r requirements.txt
    

Executando a Aplicação

  1. Inicie o servidor FastAPI usando o Uvicorn:

    uvicorn app.main:app --reload
    
  2. Abra o navegador e navegue para:

    http://127.0.0.1:8000/docs
    

    Isso abrirá a documentação interativa da API (Swagger UI).

Endpoints da API

1. Adição

  • Endpoint: /add
  • Método: POST
  • Corpo da Requisição:
    {
      "a": 5,
      "b": 3
    }
    
  • Resposta:
    {
      "result": 8
    }
    

2. Subtração

  • Endpoint: /subtract
  • Método: POST
  • Corpo da Requisição:
    {
      "a": 5,
      "b": 3
    }
    
  • Resposta:
    {
      "result": 2
    }
    

3. Multiplicação

  • Endpoint: /multiply
  • Método: POST
  • Corpo da Requisição:
    {
      "a": 5,
      "b": 3
    }
    
  • Resposta:
    {
      "result": 15
    }
    

4. Divisão

  • Endpoint: /divide
  • Método: POST
  • Corpo da Requisição:
    {
      "a": 6,
      "b": 3
    }
    
  • Resposta:
    {
      "result": 2
    }
    
  • Tratamento de Erros:
    • Se b for 0, a API retornará:
      {
        "detail": "Division by zero is not allowed"
      }
      

Estrutura do Projeto

calculadora-fastapi/
├── app/
│   ├── main.py          # Ponto de entrada da aplicação FastAPI
│   ├── models.py        # Modelos Pydantic para requisição e resposta
│   ├── operations.py    # Funções de operações aritméticas
├── requirements.txt     # Dependências do projeto
├── README.md            # Documentação do projeto

Licença

Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para mais detalhes.

Agradecimentos

  • Construído com FastAPI
  • Inspirado na simplicidade do Python para construir APIs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

calculadora_manuesy_api-0.1.0.tar.gz (3.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

calculadora_manuesy_api-0.1.0-py3-none-any.whl (3.2 kB view details)

Uploaded Python 3

File details

Details for the file calculadora_manuesy_api-0.1.0.tar.gz.

File metadata

  • Download URL: calculadora_manuesy_api-0.1.0.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for calculadora_manuesy_api-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4f436511bdc44dffea1b614b284b391ece86b36a4764d7e49afe881ccc676c97
MD5 45d30be1d0f65fb8836fbd86da7318a6
BLAKE2b-256 0f5cac869845db54eb6f73853e2af53db5079ab4cbf255ab29db00358055d4ec

See more details on using hashes here.

File details

Details for the file calculadora_manuesy_api-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for calculadora_manuesy_api-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9253d705addbaad5fe54e1cc880d1ed3fc5e2f0d64b4c8359ca7b7db3010f2c5
MD5 681fb5ee7dc16bd77adb35f3dc2a33fe
BLAKE2b-256 5d952c0bbf83208a8787877c0b4930563f36b42c0c074b38289bc6cf9fcdef62

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page