27 lines
689 B
Python
27 lines
689 B
Python
|
from typing import Union
|
||
|
|
||
|
from fastapi import Depends, FastAPI
|
||
|
from typing_extensions import Annotated
|
||
|
|
||
|
app = FastAPI()
|
||
|
|
||
|
|
||
|
fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}]
|
||
|
|
||
|
|
||
|
class CommonQueryParams:
|
||
|
def __init__(self, q: Union[str, None] = None, skip: int = 0, limit: int = 100):
|
||
|
self.q = q
|
||
|
self.skip = skip
|
||
|
self.limit = limit
|
||
|
|
||
|
|
||
|
@app.get("/items/")
|
||
|
async def read_items(commons: Annotated[CommonQueryParams, Depends()]):
|
||
|
response = {}
|
||
|
if commons.q:
|
||
|
response.update({"q": commons.q})
|
||
|
items = fake_items_db[commons.skip : commons.skip + commons.limit]
|
||
|
response.update({"items": items})
|
||
|
return response
|