API referansı · 6 uç nokta
Catalog
Herkese açık katalog — kategoriler, ürünler, canlı stok.
GET
/v1/catalog/categories Herkese açık Aktif kategori ağacı
Yanıtlar
| Durum | Gövde | Açıklama |
|---|---|---|
| 200 | CategoryDto[] | Kök düğümler; alt düğümler children içinde. |
GET
/v1/catalog/snapshot Herkese açık Tüm aktif katalog, tek yanıtta
Vitrin build'inin girdisi — gezinme ucu değildir. If-None-Match gönderin: değişmeyen katalog 304 döner. 304 kararı yalnızca ETag üzerinden verilir; Last-Modified insanlar ve proxy'ler içindir.
Sıralama sabittir ve gövde bayt-özdeş servis edilir; yeniden sıralarsanız ETag eşleşmesi bozulur.
Parametreler
| Ad | Yer | Tip | Açıklama |
|---|---|---|---|
If-None-Match | header | string | Önceki yanıtın ETag'i. W/ öneki ve * desteklenir. |
Yanıtlar
| Durum | Gövde | Açıklama |
|---|---|---|
| 200 | CatalogSnapshotDto | Katalog. |
| 304 | — | Katalog değişmedi; gövde yok. |
GET
/v1/catalog/stock Herkese açık Verilen slug'lar için canlı stok
Statik üretilmiş sayfaları dürüst tutmak içindir; Cache-Control: no-store gönderilir ve asla cache'lenmemelidir.
Katalogda olmayan (bilinmeyen, pasif, ya da pasif bir kategori altındaki) bir slug yanıt haritasında bulunmaz — bu, {} değeri taşıyan bir slug'dan ("bilinen ürün, hiçbir şubede stoklu değil") farklı bir iddiadır.
Parametreler
| Ad | Yer | Tip | Açıklama |
|---|---|---|---|
slugs * | query | string | Virgülle ayrılmış ürün slug'ları; en fazla 200 adet. Tekrarlar sunucuda tekilleştirilir. |
Yanıtlar
| Durum | Gövde | Açıklama |
|---|---|---|
| 200 | StockBySlugMap | slug → şube bazlı uygunluk. |
| 400 | ApiError | too_many_slugs (200 sınırı aşıldı) veya validation_failed. |
GET
/v1/catalog/products Herkese açık Sayfalı ürün listesi
Parametreler
| Ad | Yer | Tip | Açıklama |
|---|---|---|---|
page | query | integer ≥ 1 · varsayılan 1 | |
perPage | query | integer 1–100 · varsayılan 24 | |
categoryId | query | string | Kategoriyi ve tüm alt kategorilerini kapsar. |
search | query | string en fazla 64 karakter | %, _ ve \ karakterleri sunucuda temizlenir. |
Yanıtlar
| Durum | Gövde | Açıklama |
|---|---|---|
| 200 | PageMeta + { items: PublicProductDto[] } | Ürün sayfası. |
| 400 | ApiError | validation_failed — gövde veya query şemaya uymuyor (details). |
GET
/v1/catalog/products/by-slug/{slug} Herkese açık Slug ile tek ürün
Parametreler
| Ad | Yer | Tip | Açıklama |
|---|---|---|---|
slug * | path | string |
Yanıtlar
| Durum | Gövde | Açıklama |
|---|---|---|
| 200 | PublicProductDto | Ürün. |
| 404 | ApiError | Kayıt bulunamadı. |
GET
/v1/catalog/products/{id} Herkese açık Id ile tek ürün
Parametreler
| Ad | Yer | Tip | Açıklama |
|---|---|---|---|
id * | path | string |
Yanıtlar
| Durum | Gövde | Açıklama |
|---|---|---|
| 200 | PublicProductDto | Ürün. |
| 404 | ApiError | Kayıt bulunamadı. |