GET- en POST-verzoeken voor AI

AI in productie brengen met FastAPI

Matt Eckerle

Software and Data Engineering Leader

Onze instructeur

 

Matt Eckerle

 

 

Matt Eckerle

  • Leider in software- en data-engineering
  • Enterprise Data Manager bij Inari
  • Gebruikt FastAPI voor ML sinds 2019
AI in productie brengen met FastAPI

Cursusoverzicht

 

 

  • FastAPI-basics
  • Verzoeken afhandelen en integratie
  • Invoer­validatie en beveiliging
  • Productierijpe API's bouwen en beheren

 

 

Logo van FastAPI

AI in productie brengen met FastAPI

Voor we beginnen

✓ Basis Python: functies, klassen, modules, datastructuren

Python-logo

AI in productie brengen met FastAPI

Voor we beginnen

✓ Basis Python: functies, klassen, modules, datastructuren

✓ HTTP- en REST-API-concepten

Python- en http-logo's

AI in productie brengen met FastAPI

Voor we beginnen

✓ Basis Python: functies, klassen, modules, datastructuren

✓ HTTP- en REST-API-concepten

✓ Werken met het FastAPI-framework

  • GET- en POST-verzoeken afhandelen
  • Pydantic-modellen gebruiken

✓ Machine Learning-basics

Python-, http- en FastAPI-logo's

AI in productie brengen met FastAPI

GET-verzoeken uitgelegd

  • Gebruikt om data op te halen
  • Padparameter: info in de URL
  • Verandert de serverstatus niet

Een menu

GET https://example.com/?item_id=1

Een diagram om GET-verzoeken te begrijpen

AI in productie brengen met FastAPI

GET implementeren met padparameters

from fastapi import FastAPI

app = FastAPI()

@app.get("/item/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}
  • `@app.get`-decorator definieert endpoint.
  • {item_id} is een padparameter.
  • Typehint (int) voor automatische validatie.
AI in productie brengen met FastAPI

POST-verzoeken uitgelegd

  • Gebruikt om data naar de server te sturen
  • Data in request body (meestal JSON)
  • Kan de serverstatus wijzigen

Een restaurantbestelling

POST https://example.com

Een diagram om POST-verzoeken te begrijpen

AI in productie brengen met FastAPI

POST implementeren met JSON-data

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()
db = {}

class Item(BaseModel): name: str price: float
@app.post("/items", status_code=201)
def create_item(item: Item): db[item.name] = item.model_dump() return {"message": f"Created {item.name}"}

 

  • Pydantic-model definieert datastructuur
  • @app.post voor POST-endpoint
  • Automatisch JSON parsen en valideren
AI in productie brengen met FastAPI

HTTP-statuscodes

 

  • 200 OK: standaard bij succes
  • 404 Not Found: bron niet gevonden
  • 201 Created: object aangemaakt

Een HTTP 200-statuscode die een geslaagd verzoek aangeeft

AI in productie brengen met FastAPI

HTTP-excepties opwerpen

from fastapi import FastAPI, HTTPException
app = FastAPI()

@app.get("/item/{item_id}")
async def read_item(item_id: int):
    if item_id == 4242: #An invalid order number
        raise HTTPException(status_code=404, detail="Item not found")
    return {"item_id": item_id}

@app.post("/items") async def create_item(item: Item): # Simulating item creation return {"message": f"Created {item.name}"}, 201
AI in productie brengen met FastAPI

Laten we oefenen!

AI in productie brengen met FastAPI

Preparing Video For Download...