Ir para o conteúdo

Exemplos em Python – API de Saúde e Fitness

O Python torna a interação com APIs RESTful, como a API de Saúde e Fitness, simples. Abaixo, você encontrará exemplos usando várias bibliotecas HTTP do Python para solicitações síncronas e assíncronas.


1. Usando requests (Síncrono, mais comum)

import requests

API_KEY = "YOUR_API_KEY"
url = "https://api.hefitapi.com/api/v1/bmi"
params = {
    "height": 178,
    "weight": 82,
    "units": "metric",
    "lang": "en"
}
headers = {"X-API-Key": API_KEY}

response = requests.get(url, headers=headers, params=params)
data = response.json()

print(data)

Exemplo de solicitação POST:

import requests

API_KEY = "YOUR_API_KEY"
url = "https://api.hefitapi.com/api/v1/bmi/post"
payload = {
    "height": 178,
    "weight": 82,
    "units": "metric"
}
headers = {
    "X-API-Key": API_KEY,
    "Content-Type": "application/json"
}

response = requests.post(url, headers=headers, json=payload)
data = response.json()

print(data)

2. Usando httpx (Síncrono e Assíncrono)

Exemplo de GET síncrono:

import httpx

API_KEY = "YOUR_API_KEY"
url = "https://api.hefitapi.com/api/v1/bmi"
params = {"height": 178, "weight": 82, "units": "metric", "lang": "en"}
headers = {"X-API-Key": API_KEY}

with httpx.Client() as client:
    response = client.get(url, headers=headers, params=params)
    data = response.json()
    print(data)

Exemplo de GET assíncrono:

import httpx
import asyncio

API_KEY = "YOUR_API_KEY"
url = "https://api.hefitapi.com/api/v1/bmi"
params = {"height": 178, "weight": 82, "units": "metric", "lang": "en"}
headers = {"X-API-Key": API_KEY}

async def fetch_bmi():
    async with httpx.AsyncClient() as client:
        response = await client.get(url, headers=headers, params=params)
        data = response.json()
        print(data)

asyncio.run(fetch_bmi())

Exemplo de POST (assíncrono):

async def post_bmi():
    payload = {"height": 178, "weight": 82, "units": "metric"}
    async with httpx.AsyncClient() as client:
        response = await client.post(url + "/post", headers=headers, json=payload)
        data = response.json()
        print(data)

asyncio.run(post_bmi())

3. Usando urllib (Biblioteca Padrão)

import json
from urllib import request, parse

API_KEY = "YOUR_API_KEY"
url = "https://api.hefitapi.com/api/v1/bmi"
params = {"height": 178, "weight": 82, "units": "metric", "lang": "en"}
query_string = parse.urlencode(params)
full_url = f"{url}?{query_string}"

req = request.Request(full_url, headers={"X-API-Key": API_KEY})
with request.urlopen(req) as response:
    data = json.load(response)
    print(data)

Solicitação POST usando urllib:

payload = json.dumps({"height": 178, "weight": 82, "units": "metric"}).encode("utf-8")
req = request.Request(url + "/post", data=payload, method="POST")
req.add_header("Content-Type", "application/json")
req.add_header("X-API-Key", API_KEY)

with request.urlopen(req) as response:
    data = json.load(response)
    print(data)

import aiohttp
import asyncio

API_KEY = "YOUR_API_KEY"
url = "https://api.hefitapi.com/api/v1/bmi"
params = {"height": 178, "weight": 82, "units": "metric", "lang": "en"}
headers = {"X-API-Key": API_KEY}

async def fetch_bmi():
    async with aiohttp.ClientSession() as session:
        async with session.get(url, headers=headers, params=params) as resp:
            data = await resp.json()
            print(data)

asyncio.run(fetch_bmi())

Exemplo de POST (aiohttp):

async def post_bmi():
    payload = {"height": 178, "weight": 82, "units": "metric"}
    async with aiohttp.ClientSession() as session:
        async with session.post(url + "/post", headers=headers, json=payload) as resp:
            data = await resp.json()
            print(data)

asyncio.run(post_bmi())

5. Notas e Melhores Práticas

  • Sempre substitua YOUR_API_KEY pela sua chave de API real.
  • Use o parâmetro lang para suporte a vários idiomas (en, fr, de, es, etc.).
  • Para produção, considere a gerenciamento de conexões (cliente httpx) e solicitações assíncronas para desempenho.
  • Trate os erros de forma elegante: códigos de status HTTP, timeouts e exceções.
  • As respostas incluem sinais de risco, planos de ação e metadados empresariais quando disponíveis.

Próximos Passos

Verifique outros exemplos específicos para cada idioma:

Comece a integrar a API de Saúde e Fitness nas suas aplicações Python hoje mesmo!


API de Saúde e Fitness Impulsionando a infraestrutura digital de saúde moderna