Ana içeriğe geç

ContentService ve VaultService API Referansı

CONTENT SERVICE (/api/content)

Admin Content Controller — /api/content/admin

Sites

#MethodRouteAuthDescription
1GET/api/content/admin/sitesSystemAdminSite listesi
2GET/api/content/admin/sites/{id:guid}SystemAdminSite detayı
3POST/api/content/admin/sitesSystemAdminYeni site oluşturma
4PUT/api/content/admin/sites/{id:guid}SystemAdminSite güncelleme
5DELETE/api/content/admin/sites/{id:guid}SystemAdminSite silme

POST/PUT Sites Request Body:

{
"tenantId": "Guid (required)",
"domain": "string (required)",
"isMaster": "boolean (required)",
"defaultLocale": "string (required)",
"themeConfig": "object | string (required, ThemeConfig JSON)",
"metadata": "object | string (required)",
"isActive": "boolean (required)"
}

Response (201 Created): { "id": "Guid" }


Site Theme

#MethodRouteAuthDescription
6GET/api/content/admin/sites/{siteId}/themeSystemAdminTema config al
7PUT/api/content/admin/sites/{siteId}/themeSystemAdminTema güncelle
8POST/api/content/admin/sites/{siteId}/theme/presetSystemAdminPreset uygula

PUT Theme Body:

{
"primaryColor": "string",
"secondaryColor": "string",
"fontFamily": "string"
}

Pages

#MethodRouteAuthDescription
9GET/api/content/admin/sites/{siteId}/pagesSystemAdminSayfa ağacı
10GET/api/content/admin/sites/{siteId}/pages/validate-slug?slug=X&excludePageId=YSystemAdminSlug validasyonu
11GET/api/content/admin/sites/{siteId}/pages/{id:guid}SystemAdminSayfa detayı
12POST/api/content/admin/sites/{siteId}/pagesSystemAdminYeni sayfa
13PUT/api/content/admin/sites/{siteId}/pages/{id:guid}SystemAdminSayfa güncelle
14PATCH/api/content/admin/sites/{siteId}/pages/{id:guid}/publishSystemAdminYayın durumunu toggle
15DELETE/api/content/admin/sites/{siteId}/pages/{id:guid}SystemAdminSayfa sil

POST/PUT Pages Request Body:

{
"slug": "string (required)",
"pageType": "PageType enum (required)",
"parentId": "Guid | null",
"sortOrder": "int (required)",
"isPublished": "boolean (required)",
"settings": "string (required, JSON)"
}

Page Translations

#MethodRouteAuthDescription
16PUT/api/content/admin/pages/{pageId}/translations/{locale}SystemAdminÇeviri oluştur/güncelle
17POST/api/content/admin/pages/{pageId}/preview-tokenSystemAdminPreview token

PUT Translation Body:

{
"title": "string (required)",
"metaTitle": "string | null",
"metaDescription": "string | null",
"ogImageUrl": "string | null",
"contentBlocks": "string (required, JSON)"
}

Blog Posts

#MethodRouteAuthDescription
18POST/api/content/admin/sites/{siteId}/blogSystemAdminYeni blog yazısı
19GET/api/content/admin/sites/{siteId}/blog?page=1&pageSize=20&category=X&tag=Y&isPublished=ZSystemAdminBlog listesi (pagination)
20GET/api/content/admin/sites/{siteId}/blog/{postId:guid}SystemAdminBlog detayı
21PUT/api/content/admin/sites/{siteId}/blog/{postId:guid}SystemAdminBlog güncelle
22DELETE/api/content/admin/sites/{siteId}/blog/{postId:guid}SystemAdminBlog sil

POST/PUT Blog Body:

{
"slug": "string (required)",
"authorName": "string (required)",
"authorAvatarUrl": "string | null",
"featuredImageUrl": "string | null",
"category": "string (required)",
"tags": ["string[] (required)"],
"isPublished": "boolean (required)",
"publishedAt": "DateTimeOffset | null"
}

Blog Translations

#MethodRouteAuthDescription
23PUT/api/content/admin/blog/{postId}/translations/{locale}SystemAdminBlog çeviri oluştur/güncelle

PUT Blog Translation Body:

{
"title": "string (required)",
"excerpt": "string | null",
"bodyHtml": "string (required)",
"bodyMarkdown": "string | null",
"metaTitle": "string | null",
"metaDescription": "string | null"
}

Forms

#MethodRouteAuthDescription
24GET/api/content/admin/sites/{siteId}/forms?status=X&formType=Y&page=1&pageSize=20SystemAdminForm submissions listesi
25GET/api/content/admin/forms/{id:guid}SystemAdminTek form detayı
26PATCH/api/content/admin/forms/{id:guid}/statusSystemAdminForm durumu güncelle

PATCH Form Status Body:

{
"status": "FormSubmissionStatus enum (required)",
"internalNotes": "string | null"
}

Media

#MethodRouteAuthDescription
27POST/api/content/admin/sites/{siteId}/media/upload?folder=generalSystemAdminMedya yükle (multipart, max 10MB)
28GET/api/content/admin/sites/{siteId}/media?folder=X&page=1&pageSize=20SystemAdminMedya listesi
29DELETE/api/content/admin/media/{id:guid}SystemAdminMedya sil
30GET/api/content/admin/media/{id:guid}/presigned?expiryMinutes=XSystemAdminPresigned URL al

POST Media (multipart):

  • File: IFormFile (required)
  • Folder: string (optional, default "general")

Response: { "id": "Guid", "url": "string" }


#MethodRouteAuthDescription
31GET/api/content/admin/sites/{siteId}/navigationSystemAdminNavigasyon menüleri (header/footer/sidebar)
32PUT/api/content/admin/sites/{siteId}/navigation/{location}SystemAdminNavigasyon oluştur/güncelle
33POST/api/content/admin/cache/invalidateSystemAdminCache invalidasyonu

Public Content Controller — /api/content/sites

#MethodRouteAuthCachedDescription
34GET/api/content/sites/resolve?domain=XNone5minDomain'den site çözme
35GET/api/content/sites/{siteId}/theme.cssNone5minTema CSS (text/css)
36GET/api/content/sites/{siteId}/pages?locale=tr&parentSlug=XNone2minYayınlanmış sayfalar
37GET/api/content/sites/{siteId}/pages/{slug}?locale=tr&preview_token=XNone2minSlug'dan sayfa detayı
38GET/api/content/sites/{siteId}/blog?locale=tr&page=1&pageSize=10&category=X&tag=YNone2minYayınlanmış blog yazıları
39GET/api/content/sites/{siteId}/blog/{slug}?locale=trNone2minTek blog yazısı detayı
40POST/api/content/sites/{siteId}/forms/submitNone (rate-limited)-Form submit

VAULT SERVICE (/api/secrets)

SecretsQueryController

#MethodRouteAuthDescription
1GET/api/secrets/{environment}/{key}InternalAPI KeySecret değeri al (şifrelenmiş değil, plain value)
2GET/api/secrets/{environment}InternalAPI KeyTüm secrets listesi (masked: ***)

SecretsWriteController

#MethodRouteAuthDescription
3PUT/api/secrets/{environment}/{key}InternalAPI KeySecret oluştur/güncelle

PUT Body:

{ "value": "string (required)" }

SecretsDeleteController

#MethodRouteAuthDescription
4DELETE/api/secrets/{environment}/{key}InternalAPI Key + SystemAdminSecret sil (değer "__deleted__" olarak işaretlenir)

SecretsSyncController

#MethodRouteAuthDescription
5POST/api/secrets/sync/{environment}InternalAPI Key + SystemAdminEnv'den sync başlat (asenkron)

Response: 202 Accepted