Ana içeriğe geç

Sayfalar

Statik sayfaların (Hakkımızda, Vizyon, İletişim vb.) CRUD işlemleri. Kapak görseli doğrudan bu modüle upload edilmez; önce Media Manager üzerinden yüklenir, sonra coverImageMediaFileId ile referans verilir.

Base URL: /api/tenant/pages Yetkilendirme: Bearer Token + X-Api-Key Modül: Pages modülü müşteriye atanmış olmalıdır.

Headers:

Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
X-Api-Key: customer-api-key

POST /

Yeni sayfa oluşturur.

Request Body:

{
"code": "about-us",
"coverImageMediaFileId": "media-image-id-...",
"status": "Draft",
"isActive": true,
"noIndex": false,
"translations": [
{
"languageId": "9cd14a82-...",
"title": "Hakkımızda",
"description": "Şirketimiz hakkında kısa bilgi",
"content": "<p>Biz kimiz...</p>",
"slug": "hakkimizda",
"metaTitle": "Hakkımızda | Kompanse",
"metaDescription": "Şirketimiz hakkında detaylı bilgi.",
"metaKeywords": "hakkımızda, şirket, vizyon",
"canonicalUrl": "https://example.com/hakkimizda"
}
]
}
AlanTipZorunluAçıklama
codestringEvetBenzersiz sayfa kodu (ör: about-us, contact)
coverImageMediaFileIdGuid?HayırMedia Manager'da yüklenmiş görsel ID
statusstringEvetDraft, Published veya Archived
isActiveboolHayırAktiflik durumu (varsayılan: true)
noIndexboolHayırArama motorlarından gizle (varsayılan: false)
translationsPageTranslationRequest[]EvetDil çevirileri

PageTranslationRequest

AlanTipZorunluAçıklama
languageIdGuidEvetDil ID
titlestringEvetBaşlık
descriptionstringHayırKısa açıklama
contentstringEvetİçerik (HTML)
slugstringHayırURL slug (boş ise başlıktan üretilir)
metaTitlestringHayırSEO başlığı
metaDescriptionstringHayırSEO açıklaması
metaKeywordsstringHayırSEO anahtar kelimeler
canonicalUrlstringHayırCanonical URL

Response — 201 Created:

{
"success": true,
"data": {
"id": "3fa85f64-...",
"code": "about-us",
"coverImageUrl": null,
"status": "Draft",
"isActive": true,
"noIndex": false,
"createdAt": "2026-03-28T10:00:00Z",
"updatedAt": null,
"translations": [
{
"languageId": "9cd14a82-...",
"languageCode": "tr",
"title": "Hakkımızda",
"description": "Şirketimiz hakkında kısa bilgi",
"content": "<p>Biz kimiz...</p>",
"slug": "hakkimizda",
"metaTitle": "Hakkımızda | Kompanse",
"metaDescription": "Şirketimiz hakkında detaylı bilgi.",
"metaKeywords": "hakkımızda, şirket, vizyon",
"canonicalUrl": "https://example.com/hakkimizda"
}
]
}
}

GET /

Sayfaları filtreli ve sayfalanmış olarak listeler.

Query Parametreleri:

ParametreTipVarsayılanAçıklama
pageint1Sayfa numarası
pageSizeint10Sayfa başına kayıt
statusstringDraft, Published veya Archived filtresi
searchstringBaşlıkta arama
langstringDil kodu filtresi

Response — 200 OK:

{
"success": true,
"data": {
"items": [
{
"id": "3fa85f64-...",
"code": "about-us",
"coverImageUrl": null,
"status": "Published",
"isActive": true,
"createdAt": "2026-03-28T10:00:00Z",
"title": "Hakkımızda",
"slug": "hakkimizda"
}
],
"page": 1,
"pageSize": 10,
"totalCount": 1,
"totalPages": 1
}
}

GET /{id}

Sayfa detayını tüm çevirilerle getirir.

Response — 200 OK:

{
"success": true,
"data": {
"id": "3fa85f64-...",
"code": "about-us",
"coverImageUrl": null,
"status": "Published",
"isActive": true,
"noIndex": false,
"createdAt": "2026-03-28T10:00:00Z",
"updatedAt": "2026-03-28T14:00:00Z",
"translations": [
{
"languageId": "9cd14a82-...",
"languageCode": "tr",
"title": "Hakkımızda",
"description": "Şirketimiz hakkında kısa bilgi",
"content": "<p>Biz kimiz...</p>",
"slug": "hakkimizda",
"metaTitle": "Hakkımızda | Kompanse",
"metaDescription": "Şirketimiz hakkında detaylı bilgi.",
"metaKeywords": "hakkımızda, şirket, vizyon",
"canonicalUrl": "https://example.com/hakkimizda"
}
]
}
}

GET /by-code/{code}

Sayfa detayını benzersiz code değeriyle getirir.

Örnek: GET /api/tenant/pages/by-code/about-us

Response — 200 OK: GET /{id} ile aynı yapıdadır.


PUT /{id}

Sayfayı günceller.

Request Body: CreatePageRequest ile aynı yapıdadır.

Response — 200 OK: PageResponse objesi döner.


DELETE /{id}

Sayfayı siler (soft delete).

Response — 204 No Content


Medya Kullanımı

Kapak görseli atamak için:

  1. Dosyayı Media Manager üzerinden yükleyin.
  2. Dönen id değerini coverImageMediaFileId alanında gönderin.
  3. Kapağı kaldırmak için update isteğinde coverImageMediaFileId: null gönderin.

Olası Hatalar

KodDurum
401Token eksik veya geçersiz
403Tenant kullanıcısı yetkisi yok veya pages modül erişimi yok
404Sayfa bulunamadı
409Code veya slug çakışması
400Geçersiz filtre, body veya medya referansı