T-SOFT/Storefront API/Link Çözümleme

Link Çözümleme

Yetki:storefront:read — uygulama token'ı yeterli. Token almak için Kimlik Doğrulama, hata gövdelerinin biçimi için Genel Bakış.

Bir mağaza URL'ini veya slug'ını storefront hedefine çözer: ürün, kategori, marka gibi bir API kaynağına ya da sepet, arama gibi bir uygulama rotasına. Push bildirimi, banner ve deeplink hedeflerini uygulama ekranına eşlemek için kullanılır. storefront:read scope'lu uygulama token'ı gerekir.

GET /link

curl "https://<domain>/api/v3/storefront/2026-01/link?url=kirmizi-elbise" \
  -H "Accept: application/vnd.api+json" \
  -H "Authorization: Bearer <access_token>"
{
  "jsonapi": { "version": "1.0" },
  "data": { "type": "products", "id": "4242" },
  "meta": {
    "url": "kirmizi-elbise",
    "targets": [],
    "slug": "kirmizi-elbise"
  }
}

Parametreler

ParametreÖrnekDavranış
urlurl=https://www.example.com/mavi-pantolon?utm_source=pushZorunlu, en çok 2048 karakter. Çıplak slug, tam URL, site kök URL'i veya tel: URI kabul eder; tam URL'ler slug'a indirgenip aynı şekilde çözülür, sorgu parametreleri (UTM vb.) hedefi etkilemez

Yanıt yapısı

  • data: hedef bir API kaynağıysa JSON:API kaynak tanımlayıcısı ({ "type", "id" }); kaynak olmayan hedeflerde (rota, arama, telefon) null — alan her zaman bulunur.
  • meta.url: istekteki url değeri, her yanıtta yankılanır.
  • meta.targets: { "kind", "value" } nesneleri; kaynak olmayan hedefleri taşır. kind değerleri: route, search, phone.
  • meta.slug: çözümlenen nihai slug; tel: ve site kökü gibi slug'sız hedeflerde bulunmaz.
  • id her zaman string'dir.

data.type değerleri

Hedef bir kayda çözüldüğünde data.type şu değerlerden birini alır: products, categories, brands, suppliers, models, stores, tags, pages. Bilinmeyen ya da desteklenmeyen hedefler yer tutucu bir tip yerine 404 döner.

Rota hedefleri

Modül sayfaları API kaynağı değildir; data: null ve bir route hedefiyle döner:

{
  "jsonapi": { "version": "1.0" },
  "data": null,
  "meta": {
    "url": "sepetim",
    "targets": [{ "kind": "route", "value": "basket" }],
    "slug": "sepetim"
  }
}

Olası route değerleri: home, customerOrders, customerLogin, customerRegistration, customerInformation, contact, newproducts, discounted, categoryList, brandList, modelList, basket, branchOfficeList, order.

Arama hedefleri

Arama içeren linkler search hedefi üretir. ?q= parametresi taşıyan bir sayfa linki hem rota hem arama hedefi döndürebilir:

{
  "data": null,
  "meta": {
    "targets": [
      { "kind": "route", "value": "home" },
      { "kind": "search", "value": "elbise" }
    ]
  }
}

Telefon hedefleri

curl "https://<domain>/api/v3/storefront/2026-01/link?url=tel:%2B905551112233" \
  -H "Accept: application/vnd.api+json" \
  -H "Authorization: Bearer <access_token>"
{
  "jsonapi": { "version": "1.0" },
  "data": null,
  "meta": {
    "url": "tel:+905551112233",
    "targets": [{ "kind": "phone", "value": "+905551112233" }]
  }
}

Site kökü

Site kök URL'i (https://www.example.com/) data: null ve { "kind": "route", "value": "home" } hedefiyle döner.

Yönlendirme semantiği

301 yönlendirme kayıtları zincir boyunca izlenir ve nihai hedef döner; meta.slug nihai slug'dır.

Yönlendirme zinciri en çok 3 sıçrama izlenir; daha uzun zincirler ve kendine dönen döngüler 404 döner.

Hatalar

Durum koduSebep
401Token yok, geçersiz veya client pasif
403Token storefront:read scope'u taşımıyor
422url parametresi eksik
404Slug hiçbir hedefe çözülemedi, hedef tipi desteklenmiyor, yönlendirme sınırı aşıldı veya döngü tespit edildi

404 gövdesi JSON:API hata biçimindedir:

{
  "jsonapi": { "version": "1.0" },
  "errors": [
    {
      "status": "404",
      "title": "Not Found",
      "detail": "The given url could not be resolved to a storefront target."
    }
  ]
}