API
Sitelerin içerik okumak ve form göndermek için kullandığı, kimlik doğrulaması gerektirmeyen herkese açık API.
Bu sayfada API'nin yanıt zarfını, uç listesini ve örnek istekleri öğreneceksin.
API herkese açıktır; siteler içeriği buradan okur. Kimlik doğrulaması istemez. Tüm yollar /api/v1 ile başlar. Panelin kullandığı yönetim API'si ayrıdır, oturum ister ve bu belgenin kapsamı dışındadır.
Aşağıdaki örneklerde https://api.example.com yer tutucusunu kendi CMS adresinle değiştir.
Yanıt zarfı
Her yanıt aynı zarfla gelir. İçerik data alanındadır.
{
"data": { },
"errorCode": 0,
"errorMessage": "",
"errorId": null,
"requestId": "…",
"hasError": false
}| Alan | Anlamı |
|---|---|
data | Asıl içerik. Hata durumunda boş olabilir. |
hasError | true ise istek başarısızdır. Önce bu alana bak. |
errorCode | 0 başarılıdır. Diğer değerler alan koduna özgüdür, HTTP durum kodu değildir. |
errorMessage | Kullanıcıya gösterilebilecek hata metni. |
errorId | Hata takibindeki kayıt kimliği. Destek isterken paylaş. |
requestId | İsteğin kimliği. |
Her uç grubunun kendi hız sınırı vardır. Sınıra takılan istek HTTP 429 ve bir Retry-After başlığı alır. Bu başlığa uy ve isteği sonra yinele.
Uçlar
| Yöntem | Yol | Ne döner |
|---|---|---|
GET | /page/detail/{dil}?path= | Sayfa, SEO, şemalar, varlıklar ve bileşen ağacı |
GET | /page/menu/{dil} | Menü ağacı |
GET | /page/sitemap-pages/{dil}?path= | Sitemap için sayfa ağacı |
GET | /page/get-page-language-variants/{uniqueName} | Sayfanın diğer dillerdeki karşılıkları (hreflang ve dil seçici için) |
GET | /page/search?searchKey=&languageId=&path= | Site içi arama sonuçları |
GET | /page/public-revision | Yayındaki içeriğin parmak izi |
GET | /redirect/all/{dil} | Yönlendirme listesi |
GET | /template/detail/{id} | Şablon ve bileşenleri |
GET | /template/list | Şablon listesi |
GET | /language/list | Diller: kod, locale, URL öneki, varsayılan |
GET | /parameter/list | Yalnızca herkese açık parametreler |
GET | /page-list/component-data/{tanımId} | Bir listenin yayındaki girdileri |
GET | /form/captcha-config | Captcha sağlayıcısı ve site anahtarı |
POST | /form/submit/{componentId} | Form gönderimi |
POST | /form/upload/{componentId} | Form dosya yüklemesi |
GET | /health | Sağlık kontrolü (/api/v1 önekinin dışında) |
{dil} dil kodudur, örneğin tr veya en.
Sayfa detayı
curl "https://api.example.com/api/v1/page/detail/tr?path=kurumsal/hakkimizda"Ana sayfa için path değerine sitenin ana sayfa slug'ını ver. Site şablonunda bu HOME_SLUG sabitidir. Yanıtın yapısı Sayfa JSON'u sayfasında anlatılıyor.
Sayfa bulunamazsa zarf hasError: true ile döner. Site bu durumda 404 gösterir.
Menü ve sitemap
curl "https://api.example.com/api/v1/page/menu/tr"
curl "https://api.example.com/api/v1/page/sitemap-pages/tr?path="İki uç da düz liste değil, ağaç döner. Alt sayfalar children altında gelir. Bağlantılar için API'nin döndürdüğü href alanını kullan. URL'leri path alanından elle kurma.
Dil varyantları ve diller
curl "https://api.example.com/api/v1/language/list"
curl "https://api.example.com/api/v1/page/get-page-language-variants/{uniqueName}"html lang, og:locale ve URL öneki dil kaydındaki locale ve basePath alanlarından alınır. Dil kodundan yerel ayar türetme.
Arama
curl "https://api.example.com/api/v1/page/search?searchKey=iletisim&languageId=tr"searchKey en az 3, en fazla 100 karakter olmalıdır. Aksi durumda zarf hata döner.
Yayın parmak izi
curl "https://api.example.com/api/v1/page/public-revision"data alanı yayındaki içeriği temsil eden bir metindir. Değer değiştiyse yayındaki içerik değişmiştir. Bir site bu değeri izleyip kendi önbelleğini düşürebilir.
Şablon ve parametreler
curl "https://api.example.com/api/v1/template/detail/0"
curl "https://api.example.com/api/v1/parameter/list"0 kimliği istenen dilin varsayılan şablonunu getirir. Parametre listesi yalnızca herkese açık değerleri içerir: kurum bilgileri, site metinleri, robots ayarları ve doğrulama kodları gibi.
Formlar
curl "https://api.example.com/api/v1/form/captcha-config"
curl -X POST "https://api.example.com/api/v1/form/submit/42" \
-H "Content-Type: application/json" \
-d '{
"formData": { "Ad Soyad": "Ada Yılmaz", "E-posta": "[email protected]" },
"languageId": "tr",
"pagePath": "iletisim",
"pageId": 123
}'42 sayfadaki form bileşeninin kimliğidir. Akışın tamamı Formlar sayfasında.
Sağlık kontrolü
curl "https://api.example.com/health"