MrFaws Docs
Lær Python

Web og API'er

Hent data via HTTP, håndtér fejl, og byg dine egne API-endpoints.

Kald et API

Installer først en HTTP-klient:

python -m pip install httpx
import httpx

with httpx.Client(timeout=10.0) as client:
    response = client.get("https://api.mrfaws.dk/layers")
    response.raise_for_status()
    layers = response.json()

Brug altid timeout. raise_for_status() gør 4xx- og 5xx-svar til tydelige exceptions.

Query parameters og headers

response = client.get(
    "https://example.com/search",
    params={"q": "python", "limit": 10},
    headers={"Accept": "application/json"},
)

Retry med omtanke

Retry kun midlertidige fejl som timeout, 429 og enkelte 5xx-statusser. Brug exponential backoff og et maksimalt antal forsøg. Mutationer kræver ofte en idempotency key, så de ikke udføres to gange.

Et lille FastAPI-endpoint

python -m pip install fastapi uvicorn
from fastapi import FastAPI, HTTPException

app = FastAPI()
items = {1: {"name": "Keyboard"}}

@app.get("/items/{item_id}")
def get_item(item_id: int) -> dict[str, str]:
    item = items.get(item_id)
    if item is None:
        raise HTTPException(status_code=404, detail="Not found")
    return item

Start med uvicorn app:app --reload. Brug schemas, auth, database og tests, før et API sættes i produktion.

Øvelse

Byg en klient til Map API'et, som henter lagkataloget, viser navn og zoomgrænser og gemmer svaret lokalt med en kort cache-tid.

On this page