Şu ana kadar whitelabel: true rapor endpointlerimizde, whitelabel_configs içinde yapılandırılmış anahtarlarla bir WordPress hesabı gerektiriyordu. Bu tarihi - daha önce beyaz etiket WP eklentisinin Pro özelliğiydi ve API sadece aynı DB tablosunu okuyordu.
WP olmayan SDK kullanıcıları için bu, brand-config’in ek bir HTTP atlaması olmadan mümkün olmadığı anlamına geliyordu (ayrı bir yapılandırma servisi tutmak, bizimle senkronize etmek ve ardından whitelabel: true göndermek).
Şimdi alan, tüm 15 branding alanını içeren inline-nesne kabul ediyor. Tek bir istek = tam branding bağlamı = kişiselleştirilmiş PDF.
Örnek: Natal raporu PDF’si özel branding ile
Section titled “Örnek: Natal raporu PDF’si özel branding ile”curl -X POST https://api.astroway.info/v1/reports/natal \ -H "X-Api-Key: aw_live_..." \ -H "Content-Type: application/json" \ -d '{ "chart": { "date": "1990-05-15", "time": "14:30:00", "timezoneOffset": 3, "latitude": 50.45, "longitude": 30.52, "name": "Maria" }, "whitelabel": { "companyName": "Acme Astrology", "companyUrl": "https://acme-astro.example.com", "companyEmail": "hello@acme-astro.example.com", "logoUrl": "https://cdn.example.com/logo.png", "themeColor": "#ff5500", "headingColor": "#1a1a2e", "reportName": "My Personal Cosmic Map", "footerText": "© 2026 Acme Astrology", "fontPairing": "serif-sans" } }'PDF, başlıkta logo, kapakta özel başlık, chart-SVG’de tema rengi aksanları ve alt bilgi kısmında iletişim bloğu ile render edilir.
Nesnenin tüm 15 alanı
Section titled “Nesnenin tüm 15 alanı”Tüm alanlar opsiyonel - boş bırakılan alan, API anahtarı WP kullanıcısına bağlıysa DB yapılandırmasından değeri alır, aksi takdirde SDK istemcileri için sistem varsayılanlarından alır.
| Alan | Tip | Açıklama |
|---|---|---|
companyName | string | PDF başlığındaki marka adı |
companyUrl | URL | Footer’daki siteye tıklanabilir link |
companyEmail | Footer’daki iletişim linki (mailto:) | |
companyMobile | string | Footer’daki telefon |
companyBio | string | Kapak sayfasındaki şirket hakkında bir paragraf açıklaması |
logoUrl | URL (.png/.jpg/.svg/.webp) | Logo, https-only, 200×60 önerilen oran |
frontImage | URL | Kapak sayfasındaki hero görseli |
textPrimaryColor | #RGB/#RRGGBB | Ana metin |
textSecondaryColor | #RGB/#RRGGBB | Alt yazılar, meta veriler |
backgroundColor | #RGB/#RRGGBB | Sayfa arka planı |
themeColor | #RGB/#RRGGBB | Aksanlar, başlıklar, grafiklerde aspect lines |
headingColor | #RGB/#RRGGBB | H1/H2 başlıkları |
footerText | string | Footer’daki özel telif hakkı metni |
fontPairing | enum | serif-sans / sans-serif / serif-only / sans-only / system |
reportName | string | Kapakta varsayılan rapor adını değiştirir |
12 /v1/reports/* endpoint ailesi bu alanı aynı şekilde kabul eder: natal, transit-yearly, synastry, business, career, love, money, child, lal-kitab, human-design, tarot, vedic-kundli.
Geriye uyumluluk
Section titled “Geriye uyumluluk”Boolean modu hâlâ aktif ve değişmemiş:
whitelabel: true: WP kullanıcısına bağlı olan DB yapılandırmasını okur (eski gibi)whitelabel: falseveya alan eksikse: standart AstroWay brandingwhitelabel: {…}: inline nesne, yeni davranış
OpenAPI şeması için alan boolean | BrandingObject (birleşim tipi) oldu. Mevcut hiçbir istek bozulmaz.
Çözüm önceliği
Section titled “Çözüm önceliği”API anahtarı WP kullanıcısına bağlıysa ve istemci inline nesne gönderirse - inline DB’ye öncelik verir. Özellikle:
- Sistem varsayılanları (AstroWay branding)
whitelabel_configsiçindeki DB yapılandırması (WP kullanıcısı bir tane sahipse)- İstek gövdesindeki inline nesne
Birleştirme - yüzeyel, anahtar-anahtar. Yani inline.themeColor = "#ff5500" DB değerini ezer, ancak inline.logoUrl boş bırakılırsa DB logosu korunur. Bu, temel branding DB’de tutulurken per-tenant ayarların inline ile gelmesi gereken SaaS senaryoları için kullanışlı.
İç eşleme: themeColor, applyBrandingPreferences çağrısından sonra primaryColor olur; fontPairing, Handlebars şablonunda CSS font-family yığına eşlenir (örneğin, serif-sans = font-family: 'Playfair Display', serif başlıklar için + 'Inter', sans-serif gövde için).
OpenAPI 3.1 + SDK tipi belirleme
Section titled “OpenAPI 3.1 + SDK tipi belirleme”BrandingObject artık /v1/openapi.json içinde ayrı bir bileşen - bu, sonraki SDK sürümü (TS / Python / PHP) tipize edilmiş bir sınıf alacağı anlamına gelir:
// TS SDK - після наступного codegen-релізуimport { Astroway } from "@astroway/sdk";
const client = new Astroway({ apiKey: process.env.ASTROWAY_KEY });
const pdf = await client.reports.natal.create({ chart: { date: "1990-05-15", time: "14:30", /* ... */ }, whitelabel: { companyName: "Acme Astrology", themeColor: "#ff5500", reportName: "My Personal Cosmic Map", fontPairing: "serif-sans", // typed enum, autocomplete у IDE },});SDK paketleri için yol haritaları ilgili staging depolarda (astroway-typescript-staging/ROADMAP.md vb.). Cron her 5-8 günde bir mikro sürüm yayınlar; tipize edilmiş BrandingObject en yakın sürümde olacak.
Bu neyi kaldırıyor?
Section titled “Bu neyi kaldırıyor?”AstroWay PDF üretimini kendi ürününe entegre eden bir SaaS danışmanı için önceki yol şöyleydi:
- Kendi
tenantstablosundabranding_jsonalanıyla uğraşmak - Her rapor isteğinden önce: kullanıcının yapılandırmasını çekmek
- WP eklentisi olmadan API’ya nasıl gönderileceğini anlamamak (önceden: hiçbir yol yoktu, SaaS kullanıcısı için
whitelabel_configsgirişi yapmamız gerekiyordu) - Ya da PDF post‑işlemeyi kendi renderimizle yapmak: bu ekstra altyapı
Şimdi yol:
- Kendi
branding_json’i saklamak - Her istek için
whitelabelalanına inline göndermek
Daha az HTTP atlaması, hizmetler arasında DB senkronizasyonu yok, per‑request branding üzerinde tam kontrol.
Erişilebilirlik
Section titled “Erişilebilirlik”Inline modu, PDF raporu bulunan tüm planlarda kullanılabilir - Indie ($19/ay) ile Business arasında. Free tier PDF sağlamaz (bu amaçlı - Free’te ücretsiz JSON, render yok). İstek kredi maliyeti değişmez - inline yapılandırma render üzerine ek credit maliyeti getirmez.
Tüm 12 endpoint için dokümantasyon inline modu örnekleriyle güncellendi. Bak: /docs/api/ → Reports.
Solar Fire'daki aynı Swiss Ephemeris - 4 satır kodla.
Kart gerekmeden ücretsiz anahtar. İlk ödemeye kadar ayda 5.000 istek.