Web (Site Kurucu)

content-types

11 uç · /api/web/v1/content-types

İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 11 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.

GET/api/web/public/v1/content-types

GET /api/web/public/v1/content-types — tip listesi ve **alan şeması**

API anahtarı

(BLE22-14012). 🔴 Şema uçtan gelir çünkü istemci FORMU ondan kurar: alan listesini elle yazan bir entegrasyon, kiracı şemayı değiştirdiği gün sessizce eksik veri gönderir (DEV-01'in headless düzlemdeki hâli).

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/public/v1/content-types" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/web/public/v1/content-types/{key}/items

GET /api/web/public/v1/content-types/{key}/items — süzgeçli · sıralı ·

API anahtarıYol parametresi: key

sayfalı kayıt listesi (BLE22-14010 · 14011 · 14014). 🔴 **Toplu senkronizasyon AYRI bir uç DEĞİLDİR** (updated_since): ayrı bir "sync" ucu aynı süzgeç/sıralama mantığını İKİNCİ kez kurar ve ikisi bir gün ayrışır (önizlemenin confirm kararının aynı gerekçesi). Aynayı taze tutmak için updated_since + item.unpublished webhook'u BİRLİKTE kullanılır: bu uç yayından kalkanı GÖSTERMEZ, o bilgi duyurudan gelir. ⚠ Süzgeç anahtarı f_ ÖNEKLİDİR — ziyaretçi düzlemiyle AYNI sözlük. Burada önbellek kaygısı yok ama İKİ farklı sözlük, aynı ürünü iki kez öğrenmek demekti.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/public/v1/content-types/<key>/items" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PATCH/api/web/v1/content-types/{id}

PATCH /api/web/v1/content-types/{id} — ad, çoğul ve **alan şeması**.

OturumYol parametresi: id

🔴 Paket 1'de bu uç YOKTU: bir alanı yeniden adlandırmanın, bir kural eklemenin ya da yanlış seçilmiş bir tipi düzeltmenin tek yolu, kayıtları olan tipi silip baştan kurmaktı — yani müşterinin bütün ilanlarını yok etmek. "Kaydı olan tip silinemez" kuralı kapıyı doğru kapatıyordu ama yerine bir açık koymuyordu ("kapıyı kapattıysan KOLUNU da tak", LIFE-02). 🔴 **URL kökü (key) DEĞİŞMEZ.** Kökü değiştirmek yayında olan her kaydın adresini değiştirmektir ve o iş bir 301 defteri ister (adres bir SÖZDÜR). Bu paketin kapsamı ŞEMADIR.

İstek
curl -X PATCH "https://{slug}--panel.web.blesyum.app/api/web/v1/content-types/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/web/v1/content-types/{id}

DELETE /api/web/v1/ticket-types/{id}

OturumYol parametresi: id

🔴 SATILMIŞ bir tip silinemez: kaç bilet olduğu SÖYLENİR ve karar kullanıcınındır (kaydı olan içerik tipinin aynı kararı). Silinseydi katılımcının bileti hangi tipe ait olduğunu kaybederdi.

İstek
curl -X DELETE "https://{slug}--panel.web.blesyum.app/api/web/v1/content-types/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/web/v1/content-types/{id}/export

GET /api/web/v1/content-types/{id}/export — tipin ŞEMASI (kayıt YOK).

OturumYol parametresi: id

🔴 Kapı settings.manage: dışa aktarılan belge tipin tüm yapısıdır ve içeri geri verildiğinde bir tip YARATIR. Okuma izniyle alınabilseydi, yapıyı görmemesi gereken bir rol onu başka bir siteye kurabilirdi.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/content-types/<id>/export" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/web/v1/content-types/{id}/export.csv

GET /api/web/v1/content-types/{type}/export.csv

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/content-types/<id>/export.csv" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/web/v1/content-types/{id}/import

POST /api/web/v1/ab-tests/{id}/apply — kazananı yayına al.

OturumYol parametresi: id

🔴 Yayın AYNI kapıdan (pages::yayinla): ikinci bir yayın yolu, arama indeksini · dış duyuruyu · önbellek kuşağını yeniden hatırlamak zorunda kalan ikinci bir yer açardı. ⚠ Test ÖNCE applied yapılır, yayın SONRA: yayın kapısı "koşan test varsa yayın yok" der ve sıra ters olsaydı kendi kapısına takılırdı.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/content-types/<id>/import" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/web/v1/content-types/{id}/import/preview

GET /api/web/v1/network/sites/{site}/defaults-preview — bu ayar yeni

OturumYol parametresi: id

sitede ne olur. ⚠ Yalnız GÖSTERİR: uygulamaz. Ayrı bir uç olmasının sebebi, panelin "varsayılanlar neye dönüşecek" sorusunu ikinci bir katalog kurmadan sorabilmesi.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/content-types/<id>/import/preview" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/web/v1/content-types/{id}/items

GET /api/web/v1/content-types/{id}/items

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/content-types/<id>/items" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/web/v1/content-types/{id}/items

POST /api/web/v1/content-types/{id}/items

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/content-types/<id>/items" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/web/v1/content-types/{id}/items/bulk

POST /api/web/v1/content-types/{id}/items/bulk

OturumYol parametresi: id

# 🔴 Toplu işlem TEK TİPTE çalışır Kimlik listesini tipten bağımsız kabul eden bir uç, başka bir tipin (hatta başka bir sitenin) kaydını da değiştirirdi. Tip yoldan gelir ve listedeki HER kimlik ona ait olmalıdır; olmayanlar İŞLENMEZ ve SAYILIR. # 🔴 Sonuç SAYIYLA söylenir *"İşlem tamamlandı"* diyen bir yanıt, 40 kaydın 12'sinin atlandığını gizlerdi. Yanıt kaçının işlendiğini, kaçının atlandığını ve NEDEN atlandığını taşır.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/content-types/<id>/items/bulk" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
Bu sayfa işine yaradı mı?