Public API¶
Aktuální a deklarované endpointy¶
V app/routes/api.php jsou dnes definované tyto endpointy:
GET /api/v1/productsGET /api/v1/products/{id}GET /api/v1/products/{id}/variantsGET /api/v1/categoriesGET /api/v1/categories/{id}GET /api/v1/brandsGET /api/v1/brands/{id}GET /api/v1/search
Co je reálně implementováno¶
Podle aktuálního kódu jsou dnes implementovány tyto controllery:
ProductControllerCategoryControllerBrandControllerSearchController
Public API tedy dnes reálně obsluhuje:
- listing produktů,
- detail produktu,
- seznam variant produktu,
- listing kategorií,
- detail kategorie včetně breadcrumbů,
- listing značek,
- detail značky,
- fulltextové hledání přes Meilisearch.
Response format¶
API vrací JSON v konzistentním tvaru:
{ "data": [...] }
{ "data": {...} }
{ "error": "Not found" }
U listingu produktu je navíc meta s paginací.
Parametry listingu produktu¶
Podle ProductController::index() lze použít:
locale, výchozícs,page, výchozí1,limit, výchozí20, maximum100.
Viditelnost produktů¶
Public produktové endpointy vrací pouze produkty ve stavu published.
To se týká:
GET /api/v1/products,GET /api/v1/products/{id},GET /api/v1/products/{id}/variants.
Public API tedy nepodporuje query param status a nevrací draft, hidden ani jiné interní workflow stavy.
Parametry dalších endpointů¶
Categories¶
GET /api/v1/categorieslocale, výchozícspage, výchozí1limit, výchozí200, maximum500GET /api/v1/categories/{id}locale, výchozícs
Vrací pouze aktivní a neinterní kategorie.
Brands¶
GET /api/v1/brandslocale, výchozícspage, výchozí1limit, výchozí20, maximum100GET /api/v1/brands/{id}locale, výchozícs
Search¶
GET /api/v1/searchq, povinný parametrlocale, výchozícspage, výchozí1limit, výchozí20, maximum100
Při nedostupném Meilisearch vrací endpoint 503 Search unavailable.
Důležitá omezení současné implementace¶
- lokalizace produktu a kategorií dnes nemá serverový fallback, repository čtou přesný
locale, - brand má fallback na base data z
catalog.brand, protože značka má základní jméno a slug i mimo translation tabulku, - detailové endpointy validují UUID,
variantsvrací jen základní variantová data a lokalizovaný název,- search je read vrstva nad Meilisearch, ne zdroj pravdy,
- pricing, inventory a širší content data zatím nejsou součástí public produktu response.