Перейти до вмісту
AstroWay/api v2.254.12 · docs
усі системи в нормі

Веб-компоненти

@astroway/ui це набір звичайних custom elements: ставите тег на сторінку, і він малює себе сам. Карти малює @astroway/render, той самий код, що стоїть за /v1/render/*, тож колесо на вашій сторінці збігається з колесом, яке повертає API.

Пакет в альфі (0.1.0-alpha.1): назви атрибутів ще можуть змінитися до 1.0. Сторінка пакета: npm, код: GitHub.

З CDN, без збирання:

<script type="module" src="https://cdn.jsdelivr.net/npm/@astroway/ui/dist/cdn/index.js"></script>
<aw-moon-phase></aw-moon-phase>

Або з npm, імпортуючи всі елементи чи лише потрібні. Пакет поки в альфі, тож просіть цей тег:

Terminal window
npm install @astroway/ui@alpha
import '@astroway/ui'; // усі елементи
import '@astroway/ui/natal-wheel'; // або один

Три способи дати елементу дані

Section titled “Три способи дати елементу дані”

A. Ваші дані. Робите запит на своєму сервері своїм ключем і передаєте елементу JSON. З браузера відвідувача запит не йде, тож підходить ключ будь-якого класу.

document.querySelector('aw-natal-wheel').data = chart; // data з відповіді /v1/chart

Серверний шаблон може записати той самий JSON в атрибут:

<aw-natal-wheel data='<?= htmlspecialchars(json_encode($chart), ENT_QUOTES) ?>'></aw-natal-wheel>

B. Без ключа. Елементам на /v1/public/* ключ не потрібен. Вони ділять публічний бюджет відвідувача, 30 одиниць на годину з одного IP; коли він вичерпується, елемент пише, скільки чекати.

<aw-moon-phase lang="uk"></aw-moon-phase>
<aw-horoscope sign="leo" period="daily"></aw-horoscope>
<aw-tarot-spread spread="three-card"></aw-tarot-spread>

C. Ключ для браузера. Елементи на ендпоінтах з ключем беруть ключ pk_, створений для вашого сайту: список доменів, ліміт кредитів і область ендпоінтів при створенні обов’язкові. Див. розділ “Ключі для браузера” на сторінці автентифікації. Секретний ключ aw_ відхиляється ще до запиту.

<aw-natal-wheel api-key="pk_live_..." date="1990-05-15" time="14:30"
latitude="50.45" longitude="30.52" timezone-offset="3"></aw-natal-wheel>

Для цих елементів в області ключа потрібен chart, і ще chinese/zodiac/animal, якщо ставите aw-chinese-sign. Домени звіряються за хостом: ключ для example.com працює і на http://example.com:8080.

React 19 рендерить custom elements напряму. Від звичайного HTML відрізняються дві речі:

  • React забирає key собі, тому ключ передавайте як api-key.
  • На сторінці з серверним рендером дані для способу A передавайте рядком. React відкидає об’єкти під час серверного рендеру і не виставляє їх під час гідрації.
'use client';
import '@astroway/ui/natal-wheel';
import '@astroway/ui/jsx'; // типи для тегів <aw-*> у TypeScript
export default function Chart({ chart }: { chart: unknown }) {
return <aw-natal-wheel data={JSON.stringify(chart)} />;
}

Модулі можна імпортувати на сервері: тег іде як звичайний HTML і малюється, щойно браузер завантажить елемент.

ЕлементСпособиДжерело
aw-natal-wheelA/C/v1/chart
aw-aspect-gridA/C/v1/chart
aw-planet-tableA/C/v1/chart
aw-moon-phaseA/B/v1/public/moon-phase
aw-planet-of-dayA/B/v1/public/planet-of-day
aw-horoscopeA/B/v1/public/horoscope/{daily,weekly,monthly}
aw-tarot-card, aw-tarot-spreadA/B/v1/public/tarot/*
aw-sign-matrixA/B/v1/public/compatibility/matrix
aw-synastry-scoreA/B/v1/public/synastry
aw-chinese-signA/C/v1/chinese/zodiac/animal + /v1/public/chinese/zodiac/texts

Елементи з однією картою на сторінці (колесо, таблиця і сітка з тими самими даними народження) роблять один запит на всіх.

aw-aspect-grid у власному розмірі має близько 560 px завширшки. У вужчій колонці він зменшується, і підписи орбів стають дрібними; атрибут scroll залишає повний розмір із горизонтальною прокруткою.

  • lang приймає будь-яку з 21 мови, за замовчуванням береться <html lang> сторінки. Назви приходять з таблиць localized в API.
  • theme="dark" перемикає малюнок; кольори задають CSS-змінні --aw-accent, --aw-fg, --aw-bg, --aw-bg-soft, --aw-border.
  • Кожен елемент надсилає подію aw-error з { kind, message }, де kind це error, rate-limited або key.
Корисно?
Запропонувати правку

Останнє оновлення: