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 httpximport 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 uvicornfrom 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 itemStart 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.