📚 Projeto de API de Teste com FastAPI

Este projeto é uma API simples construída usando FastAPI, um framework moderno e de alto desempenho para construir APIs em Python. O objetivo deste projeto é demonstrar como criar, configurar e testar uma API básica com FastAPI.

🚀 Funcionalidades

  • Rota de Boas-Vindas: Uma rota simples que retorna uma mensagem de boas-vindas.
  • Rota para Obter Dados de Restaurantes: Faz uma requisição para uma API externa que retorna dados de restaurantes e permite filtrar por nome de restaurante.

🛠 Tecnologias Utilizadas

  • Python 3.7+
  • FastAPI
  • Uvicorn (Servidor ASGI para rodar a aplicação)
  • Requests (Biblioteca para fazer requisições HTTP)

📦 Estrutura do Projeto

├── main.py          # Arquivo principal da aplicação
├── requirements.txt # Dependências do projeto
└── README.md        # Documentação do projeto

🚧 Como Executar o Projeto

Pré-requisitos

  • Certifique-se de ter o Python 3.7 ou superior instalado.
  • É recomendável usar um ambiente virtual para evitar conflitos de dependências.

Passo a Passo

  1. Clone este repositório:
    git clone https://github.com/CassAssump/basoc-api-Fastapi/
    cd /basoc-api-Fastapi
  2. Crie e ative um ambiente virtual (opcional, mas recomendado):
    python3 -m venv venv
    source venv/bin/activate   # Para Linux/MacOS
    venv\Scripts\activate      # Para Windows
  3. Instale as dependências:
    pip install -r requirements.txt
  4. Execute a aplicação:
    uvicorn main:app --reload
  5. Acesse a API:
    • Rota principal (boas-vindas): http://127.0.0.1:8000/api/hello
    • Rota para obter dados de restaurantes: http://127.0.0.1:8000/api/restaurante?restaurante=NomeDoRestaurante
  6. Documentação da API:
    • Acesse a documentação interativa gerada automaticamente pelo FastAPI:
    • Swagger UI: http://127.0.0.1:8000/docs
    • ReDoc: http://127.0.0.1:8000/redoc

📝 Exemplos de Uso

Rota de Boas-Vindas

  • Requisição:
    GET /api/hello
  • Resposta:
    {
      "message": "Hello World"
    }

Rota de Restaurante

  • Requisição sem filtro:
    GET /api/restaurante
  • Requisição com filtro por nome de restaurante:
    GET /api/restaurante?restaurante=NomeDoRestaurante
  • Resposta:
    {
      "Restaurante": "NomeDoRestaurante",
      "Cardapio": [
        {
          "item": "Nome do Prato",
          "price": 12.99,
          "description": "Descrição do prato"
        }
      ]
    }