Hingga hari ini, whitelabel: true di endpoint laporan kami memerlukan akun WordPress dengan kunci yang dikonfigurasi di whitelabel_configs. Ini historis - sebelumnya, whitelabel adalah fitur Pro dari plugin WP, dan API hanya membaca tabel DB yang sama.
Bagi pengguna SDK tanpa WP, ini berarti: konfigurasi merek tidak mungkin tanpa lompatan HTTP tambahan (mempertahankan layanan konfigurasi terpisah, menyinkronkannya dengan layanan kami, lalu mengirim whitelabel: true).
Sekarang, bidang ini menerima objek inline dengan semua 15 bidang branding. Satu permintaan = konteks merek lengkap = PDF yang dipersonalisasi.
Contoh: Laporan Natal PDF dengan Branding Kustom
Section titled “Contoh: Laporan Natal PDF dengan Branding Kustom”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 dirender dengan logo di header, judul kustom di halaman sampul, aksen theme-color yang sesuai di SVG bagan, dan blok kontak di footer.
Semua 15 Bidang Objek
Section titled “Semua 15 Bidang Objek”Semua bidang bersifat opsional - bidang yang dihilangkan akan mengambil nilai dari konfigurasi DB (jika kunci API terikat ke pengguna WP) atau dari default sistem (untuk klien SDK tanpa WP).
| Bidang | Tipe | Tujuan |
|---|---|---|
companyName | string | Nama merek di header PDF |
companyUrl | URL | Tautan situs web yang dapat diklik di footer |
companyEmail | Tautan kontak di footer (mailto:) | |
companyMobile | string | Nomor telepon di footer |
companyBio | string | Satu paragraf deskripsi perusahaan di halaman sampul |
logoUrl | URL (.png/.jpg/.svg/.webp) | Logo, https-only, rasio 200×60 direkomendasikan |
frontImage | URL | Gambar hero di halaman sampul |
textPrimaryColor | #RGB/#RRGGBB | Teks utama |
textSecondaryColor | #RGB/#RRGGBB | Keterangan, metadata |
backgroundColor | #RGB/#RRGGBB | Latar belakang halaman |
themeColor | #RGB/#RRGGBB | Aksen, judul, garis aspek di bagan |
headingColor | #RGB/#RRGGBB | Judul H1/H2 |
footerText | string | Hak cipta kustom di footer |
fontPairing | enum | serif-sans / sans-serif / serif-only / sans-only / system |
reportName | string | Mengganti nama laporan default di sampul |
12 endpoint dari keluarga /v1/reports/* menerima bidang ini dengan cara yang sama: natal, transit-yearly, synastry, business, career, love, money, child, lal-kitab, human-design, tarot, vedic-kundli.
Kompatibilitas Mundur
Section titled “Kompatibilitas Mundur”Mode boolean masih aktif dan tidak berubah:
whitelabel: true: membaca konfigurasi DB untuk pengguna WP yang terikat (seperti sebelumnya)whitelabel: falseatau bidang tidak ada: branding AstroWay standarwhitelabel: {…}: objek inline, perilaku baru
Skema OpenAPI untuk bidang ini sekarang adalah boolean | BrandingObject (tipe union). Tidak ada permintaan yang ada yang akan rusak.
Prioritas Resolusi
Section titled “Prioritas Resolusi”Ketika kunci API terikat ke pengguna WP DAN klien mengirimkan objek inline - inline akan mengesampingkan DB. Secara spesifik:
- Default sistem (branding AstroWay)
- Konfigurasi DB dari
whitelabel_configs(jika pengguna WP memilikinya) - Objek inline dari body permintaan
Penggabungan bersifat dangkal, kunci-per-kunci. Artinya, inline.themeColor = "#ff5500" akan menimpa nilai DB, tetapi inline.logoUrl yang dihilangkan akan mempertahankan logo DB. Ini nyaman untuk skenario SaaS di mana branding dasar berada di DB, dan penyesuaian per-tenant datang secara inline.
Pemetaan internal: themeColor menjadi primaryColor setelah memanggil applyBrandingPreferences, fontPairing dipetakan ke tumpukan CSS font-family di template Handlebars (misalnya, serif-sans = font-family: 'Playfair Display', serif untuk judul + 'Inter', sans-serif untuk isi).
OpenAPI 3.1 + Tipisasi SDK
Section titled “OpenAPI 3.1 + Tipisasi SDK”BrandingObject sekarang menjadi komponen terpisah di /v1/openapi.json - ini berarti rilis SDK berikutnya (TS / Python / PHP) akan mendapatkan kelas yang ditipisasi:
// 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 },});Peta jalan paket SDK ada di repositori staging yang sesuai (astroway-typescript-staging/ROADMAP.md, dll.). Cron menerbitkan rilis minor setiap 5-8 hari; BrandingObject yang ditipisasi akan ada di rilis terdekat.
Apa yang Dihilangkan Ini
Section titled “Apa yang Dihilangkan Ini”Sebelumnya, untuk konsumen SaaS yang mengintegrasikan pembuatan PDF AstroWay ke dalam produk mereka sendiri, jalannya adalah:
- Mengelola tabel
tenantsdengan bidangbranding_jsondi sisi kamu - Sebelum setiap permintaan laporan: mengambil konfigurasi pengguna kamu
- Tidak tahu cara meneruskan ke API tanpa plugin WP (sebelumnya: tidak mungkin, kamu harus meminta kami membuat entri di
whitelabel_configsuntuk pengguna SaaS) - Atau melakukan post-processing PDF dengan render kamu sendiri: ini adalah infrastruktur tambahan
Sekarang, jalannya adalah:
- Menyimpan
branding_jsondi sisi kamu - Meneruskan secara inline di
whitelabeluntuk setiap permintaan
Lebih sedikit lompatan HTTP, nol sinkronisasi DB antar layanan, kontrol penuh atas branding per permintaan.
Ketersediaan
Section titled “Ketersediaan”Mode inline tersedia di semua paket yang menyertakan laporan PDF - dari Indie ($19/bulan) hingga Business. Tingkat gratis tidak menyediakan PDF (ini disengaja - tingkat gratis menyediakan JSON gratis, tanpa rendering). Biaya kredit permintaan tidak berubah - konfigurasi inline tidak menambah biaya kredit di atas rendering.
Dokumentasi untuk semua 12 endpoint telah diperbarui dengan contoh mode inline. Lihat /docs/api/ → Reports.
Swiss Ephemeris yang sama dengan Solar Fire - dalam 4 baris kode.
Kunci gratis tanpa kartu. 5.000 panggilan per bulan sebelum pembayaran pertama.