Ortam temasını güncelle
PATCH /v1/branding · izin branding:write
Ortam tema taslağını JSON birleştirme yamasıyla (application/merge-patch+json, RFC 7396) değiştirir. null verilen jeton (ya da "light": null gibi bütün grup) temizlenir ve yeniden kalıtımla gelir; "theme": null bütün jetonları temizler. Yalnız değişen jetonlar yazılır; hiçbir şey değiştirmeyen yama sürümü artırmaz. Değerler yazımda denetlenir: renkler #rgb/#rrggbb, font.size_base 14-18, radius.card 0-24, radius.control 0-16, logo_height 24-80. logo, favicon ve background_image Markalama varlığı yükleme ile aynı türde yüklenmiş bir görseli adlandırmalıdır; yoksa alan asset_not_found hatası alır. Kontrast yayında denetlenir.
İstek
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
If-Match |
başlık | evet | Taslağın son okunan ETag değeri (hiç yazılmadıysa "0"). Yoksa 428, eskiyse 412. |
theme |
nesne | null | hayır | Kısmi BrandingTheme; her alan ve grup null olabilir. |
Yanıt
200 OK; ortam taslağı ve ETag başlığı. theme yalnız ayarlı jetonları taşır; ayarsız jetonlar platform varsayılanından gelir.
{
"theme": {"mode": "light", "light": {"color": {"primary": "#0a3d91"}}, "logo_height": 40},
"css": null,
"page_template": null,
"updated_at": "2026-10-05T09:30:00.123456Z"
}
Hatalar
| HTTP | code | Ne zaman |
|---|---|---|
| 400 | unknown_field |
Gövdede bilinmeyen alan var ya da gövde JSON nesnesi değil. |
| 412 | precondition_failed |
If-Match taslağın güncel sürümüyle eşleşmiyor. |
| 415 | unsupported_media_type |
İçerik türü application/merge-patch+json değil. |
| 422 | validation_failed |
Bir jeton değeri geçersiz (invalid_value, out_of_range, unknown_token); pointer jetonu gösterir, ör. /theme/light/color/primary. |
| 428 | precondition_required |
If-Match başlığı yok. |
| 401 | unauthenticated |
Kimlik bilgisi yok, geçersiz ya da iptal edilmiş. |
| 403 | insufficient_permissions |
Kimlik bilgisinde gerekli izin yok. |
| 429 | rate_limited |
Hız sınırı aşıldı; Retry-After süresinden sonra yeniden deneyin. |
| 503 | service_unavailable |
Bir bağımlılık geçici olarak kullanılamıyor; Retry-After süresinden sonra yeniden deneyin. |
Örnek
curl -X PATCH https://api.eu.keenauth.com/v1/branding \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/merge-patch+json" \
-H 'If-Match: "3"' \
-d '{"theme":{"light":{"color":{"primary":"#0a3d91"}},"radius":null}}'