Skip to content

openfoodfacts_proxy.routes.v3.read

[docs] module openfoodfacts_proxy.routes.v3.read

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from fastapi import APIRouter, Query, Request
from fastapi.responses import Response

from openfoodfacts_proxy.core.application_container import ApplicationContainer

router = APIRouter()


@router.get("/api/v3/product/{barcode}", response_model=None)
async def get_product(request: Request, barcode: str, fields: str | None = Query(None)) -> Response:
    """Serve the cached v3 product locally and fall back to upstream proxying."""
    container = ApplicationContainer.from_app(request.app)
    return await container.v3_product_handler.handle(request, barcode=barcode, fields=fields)