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

API китайської метафізики

53 ендпоінти на чотири родини: BaZi (18), китайський календар і зодіак (15), Zi Wei Dou Shu (14) та I Ching (6). Календар виведений з ефемерид, а не з таблиць дат, тому працює на роки з 2 по 2899 і не залежить від того, чи хтось оновив довідник.

РодинаЕндпоінтівСтан
BaZi: стовпи і аналіз18Повний класичний апарат
Календар, зодіак, фен-шуй, Тун Шу15Виведений з ефемерид
Zi Wei Dou Shu14Розстановка зірок рахується, одинадцять довідників лишаються довідниками
I Ching6Гексаграми, кидок монет, змінні риски

Чим це відрізняється від безкоштовної бібліотеки

Section titled “Чим це відрізняється від безкоштовної бібліотеки”

Чесна відповідь: якщо потрібні тільки чотири стовпи, беріть lunar-typescript. Він під MIT, рахує у вашому процесі, офлайн, без обмежень частоти, і платити за це не треба.

Різниця починається там, де бібліотека закінчується.

ЩоБібліотеки під MITAstroWay API
Чотири стовпи, 藏干, 纳音, 十神тактак
神煞 з обома читаннями там, де школи розходятьсянітак
Взаємодії гілок 刑冲合害нітак
Сила денного господаря в рамці 扶抑нітак
Істинний сонячний час як окремий розрахунокнітак
Летючі зірки за сидінням і фасадом, число Гуанітак
Вибір дати Тун Шу з фільтром по діяльностінітак
Двадцять одна мованітак
Одна конвенція для PHP, JavaScript і Python одночаснонітак

Останній рядок і є тим, за що зазвичай платять. Команда, у якої сайт на PHP, застосунок на JavaScript і крони на Python, інакше тримає три реалізації межі року і рано чи пізно отримує три різні відповіді на одну дату народження.

Конвенції названі вголос

Section titled “Конвенції названі вголос”

Чотири осі, на яких калькулятори розходяться, і жодна з них не помилка. Більшість реалізацій вибирає мовчки; ми пишемо вибір у відповідь і тримаємо сторінку конвенцій з прогоном по зовнішньому CC0-датасету.

ВісьНаша відповідь
Межа року立春 Lichun, точна мить з ефемерид
Межа доби23:00, ранній 子時 належить наступному дню
Істинний сонячний часвимкнено за замовчуванням, вмикається прапорцем
Літній часрозв’язується timezoneOffset, який надсилає клієнт
Terminal window
curl -X POST https://api.astroway.info/v1/bazi/chart \
-H "X-Api-Key: $ASTROWAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"1990-05-15","time":"14:30:00","timezoneOffset":3}'

Готовий застосунок, який можна клонувати

Section titled “Готовий застосунок, який можна клонувати”

Живе демо і код на GitHub, MIT.

Два виклики, POST /v1/bazi/chart за 20 кредитів і POST /v1/bazi/luck-pillars за 10, віддають чотири стовпи з прихованими стеблами, на-їнь і дванадцятьма стадіями, господаря дня з вердиктом сили, баланс стихій, символічні зірки, взаємодії гілок і десятирічний цикл Да Юнь. Застосунок їх малює: рік праворуч, як у класичному записі, колонка дня позначена. Бекенд це один маршрут і жодних залежностей, бо саме в ньому суть: браузер не може звернутися до API напряму, тож ключ живе на сервері.

Terminal window
git clone https://github.com/astroway/starter-bazi
cd starter-bazi && npm install
cp .env.example .env # your key goes here
npm run dev

Три речі, які варто забрати з нього. Надсилайте назву зони, а не зсув: Asia/Shanghai на 1990-05-15 це UTC+9, бо Китай тримав літній час з 1986 до 1991. Надсилайте мову: типова це українська, і англійська сторінка без неї отримає назви стихій не тією мовою. Надсилайте стать: Да Юнь іде вперед або назад залежно від неї, нейтрального значення не існує.

Тварини, стихії, інь і ян, палаци і дванадцять стадій перекладені на 21 мову. Додайте ?lang=es, і поруч з англійським токеном з’явиться поле *Name. Англійські поля не змінюються ніколи: локалізація додає, а не замінює.

Стовбури, гілки, назви зірок і 纳音 навмисно не перекладаються: їхнє міжнародне ім’я це піньїнь поруч з ієрогліфом.