Kodeloka
  1. Kodeloka
  2. Kelas FastAPI
  3. Materi

Data & Models ยท Modul 4 dari 24

Query Parameters & Optional Values

Menangani query string (/posts?limit=10&page=1), argumen opsional dengan typing.Optional, dan nilai default.

๐ŸŽฏ Poin-Poin Utama Modul Ini:
  • Argumen fungsi rute yang tidak berada di URL path otomatis diperlakukan sebagai Query Parameter
  • Memberikan nilai default limit: int = 10 membuat parameter opsional
  • Dukungan filtering, pencarian, dan halaman data

๐Ÿ“Š Parameter Kueri (Query Parameters)

Query parameters adalah pasangan key-value setelah tanda ? pada URL (misal: /posts?limit=5&search=fastapi).

๐Ÿ’ป Kode Filtering & Pagination dengan Query

main.py
from typing import Annotated
from fastapi import FastAPI, Query

app = FastAPI()

@app.get("/items/")
def read_items(
    skip: int = 0,
    limit: int = 10,
    q: Annotated[str | None, Query(min_length=3, max_length=50)] = None
):
    results = {"items": [{"item_name": "Foo"}, {"item_name": "Bar"}]}
    if q:
        results.update({"query": q})
    return results