Ana içeriğe geç

Sayfalar

Statik sayfaların (Hakkımızda, Vizyon, İletişim vb.) CRUD işlemleri ve kapak görseli yönetimi.

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",
"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)
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


Kapak Görseli

POST /{id}/cover

Sayfaya kapak görseli yükler.

Content-Type: multipart/form-data

AlanTipAçıklama
fileIFormFileGörsel dosyası

Response — 200 OK:

{
"success": true,
"data": {
"coverImageUrl": "https://cdn.example.com/media/tenant/files/pages/page-id/cover.jpg"
}
}

DELETE /{id}/cover

Kapak görselini siler.

Response — 204 No Content


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 dosya yükleme isteği