API chińskiej metafizyki
53 endpointy w czterech rodzinach: BaZi (18), chiński kalendarz i zodiak (15), Zi Wei Dou Shu (14) oraz I Ching (6). Kalendarz jest wyprowadzony z efemeryd, a nie z tabel dat, więc działa dla lat od 2 do 2899 i nie zależy od tego, czy ktoś zaktualizował słownik.
Co obejmuje
Dział zatytułowany „Co obejmuje”| Rodzina | Endpointów | Stan |
|---|---|---|
| BaZi: filary i analiza | 18 | Pełny klasyczny aparat |
| Kalendarz, zodiak, feng shui, Tong Shu | 15 | Wyprowadzony z efemeryd |
| Zi Wei Dou Shu | 14 | Rozmieszczenie gwiazd jest liczone, jedenaście słowników pozostaje słownikami |
| I Ching | 6 | Heksagramy, rzut monetami, linie zmienne |
Czym to się różni od darmowej biblioteki
Dział zatytułowany „Czym to się różni od darmowej biblioteki”Uczciwa odpowiedź: jeśli potrzebujesz tylko czterech filarów, weź lunar-typescript. Jest na MIT, liczy w Twoim procesie, offline, bez limitów częstotliwości i nie trzeba za to płacić.
Różnica zaczyna się tam, gdzie biblioteka się kończy.
| Co | Biblioteki na MIT | AstroWay API |
|---|---|---|
| Cztery filary, 藏干, 纳音, 十神 | tak | tak |
| 神煞 z obydwoma odczytaniami tam, gdzie szkoły się rozchodzą | nie | tak |
| Interakcje gałęzi 刑冲合害 | nie | tak |
| Siła Mistrza Dnia w ramie 扶抑 | nie | tak |
| Prawdziwy czas słoneczny jako osobne obliczenie | nie | tak |
| Latające gwiazdy według siedziska i fasady, liczba Gua | nie | tak |
| Wybór daty Tong Shu z filtrem według czynności | nie | tak |
| Dwadzieścia jeden języków | nie | tak |
| Jedna konwencja dla PHP, JavaScript i Pythona jednocześnie | nie | tak |
Ostatni wiersz to właśnie to, za co zwykle się płaci. Zespół, który ma stronę w PHP, aplikację w JavaScript i crony w Pythonie, w przeciwnym razie utrzymuje trzy implementacje granicy roku i prędzej czy później dostaje trzy różne odpowiedzi dla jednej daty urodzenia.
Konwencje nazwane wprost
Dział zatytułowany „Konwencje nazwane wprost”Cztery osie, na których kalkulatory się rozchodzą, i żadna z nich nie jest błędem. Większość implementacji wybiera po cichu; my zapisujemy wybór w odpowiedzi i utrzymujemy stronę konwencji z przebiegiem na zewnętrznym zbiorze danych CC0.
| Oś | Nasza odpowiedź |
|---|---|
| Granica roku | 立春 Lichun, dokładna chwila z efemeryd |
| Granica doby | 23:00, wczesny 子時 należy do następnego dnia |
| Prawdziwy czas słoneczny | domyślnie wyłączony, włączany flagą |
| Czas letni | rozstrzygany przez timezoneOffset, który wysyła klient |
Przykład
Dział zatytułowany „Przykład”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}'import { Astroway } from '@astroway/sdk';
const aw = new Astroway({ apiKey: process.env.ASTROWAY_API_KEY! });
const r = await aw.client.POST('/bazi/chart', { body: { date: '1990-05-15', time: '14:30:00', timezoneOffset: 3 },});console.log(r.data?.data?.pillars.map((p) => p.pillar));// [ 'Geng-Wu', 'Xin-Si', 'Geng-Chen', 'Gui-Wei' ]import osfrom astroway import Astroway
aw = Astroway(api_key=os.environ["ASTROWAY_API_KEY"])
chart = aw.post("/bazi/chart", body={ "date": "1990-05-15", "time": "14:30:00", "timezoneOffset": 3,})print([p["pillar"] for p in chart["pillars"]])# ['Geng-Wu', 'Xin-Si', 'Geng-Chen', 'Gui-Wei']Gotowa aplikacja do sklonowania
Dział zatytułowany „Gotowa aplikacja do sklonowania”Demo na żywo i kod na GitHubie, MIT.
Dwa wywołania, POST /v1/bazi/chart za 20 kredytów i POST /v1/bazi/luck-pillars za 10, zwracają cztery filary z ukrytymi pniami, nayin i dwunastoma stadiami, Mistrza Dnia z werdyktem siły, bilans żywiołów, gwiazdy symboliczne, interakcje gałęzi i dziesięcioletni cykl Da Yun. Aplikacja je rysuje: rok po prawej, jak w klasycznym zapisie, kolumna dnia jest oznaczona. Backend to jedna trasa i zero zależności, bo właśnie o to chodzi: przeglądarka nie może odwołać się do API bezpośrednio, więc klucz żyje na serwerze.
git clone https://github.com/astroway/starter-bazicd starter-bazi && npm installcp .env.example .env # your key goes herenpm run devTrzy rzeczy, które warto z niej wynieść. Wysyłaj nazwę strefy, a nie przesunięcie: Asia/Shanghai dla 1990-05-15 to UTC+9, bo Chiny stosowały czas letni od 1986 do 1991. Wysyłaj język: domyślny to ukraiński i angielska strona bez niego dostanie nazwy żywiołów w niewłaściwym języku. Wysyłaj płeć: Da Yun idzie naprzód albo wstecz zależnie od niej, wartość neutralna nie istnieje.
Zwierzęta, żywioły, yin i yang, pałace i dwanaście stadiów są przetłumaczone na 21 języków. Dodaj ?lang=es, a obok angielskiego tokenu pojawi się pole *Name. Pola angielskie nie zmieniają się nigdy: lokalizacja dodaje, a nie zastępuje.
Pnie, gałęzie, nazwy gwiazd i 纳音 celowo nie są tłumaczone: ich międzynarodowa nazwa to pinyin obok znaku.