API für chinesische Metaphysik
53 Endpunkte in vier Familien: BaZi (18), chinesischer Kalender und Tierkreis (15), Zi Wei Dou Shu (14) und I Ching (6). Der Kalender ist aus Ephemeriden abgeleitet, nicht aus Datumstabellen, und funktioniert daher für die Jahre 2 bis 2899, unabhängig davon, ob jemand ein Verzeichnis aktualisiert hat.
Was enthalten ist
Abschnitt betitelt „Was enthalten ist“| Familie | Endpunkte | Stand |
|---|---|---|
| BaZi: Säulen und Analyse | 18 | Vollständiger klassischer Apparat |
| Kalender, Tierkreis, Feng Shui, Tong Shu | 15 | Aus Ephemeriden abgeleitet |
| Zi Wei Dou Shu | 14 | Die Platzierung der Sterne wird berechnet, elf Verzeichnisse bleiben Verzeichnisse |
| I Ching | 6 | Hexagramme, Münzwurf, wandelnde Linien |
Worin sich das von einer kostenlosen Bibliothek unterscheidet
Abschnitt betitelt „Worin sich das von einer kostenlosen Bibliothek unterscheidet“Die ehrliche Antwort: Wenn du nur die vier Säulen brauchst, nimm lunar-typescript. Es steht unter MIT, rechnet in deinem Prozess, offline, ohne Ratenbegrenzung, und kostet nichts.
Der Unterschied beginnt dort, wo die Bibliothek endet.
| Was | Bibliotheken unter MIT | AstroWay API |
|---|---|---|
| Vier Säulen, 藏干, 纳音, 十神 | ja | ja |
| 神煞 mit beiden Lesarten, wo die Schulen auseinandergehen | nein | ja |
| Wechselwirkungen der Zweige 刑冲合害 | nein | ja |
| Stärke des Tagesmeisters im Rahmen von 扶抑 | nein | ja |
| Wahre Sonnenzeit als eigene Berechnung | nein | ja |
| Fliegende Sterne nach Sitz und Fassade, Gua-Zahl | nein | ja |
| Tong-Shu-Datumswahl mit Filter nach Tätigkeit | nein | ja |
| Einundzwanzig Sprachen | nein | ja |
| Eine Konvention für PHP, JavaScript und Python zugleich | nein | ja |
Die letzte Zeile ist genau das, wofür man gewöhnlich bezahlt. Ein Team mit einer Website in PHP, einer App in JavaScript und Cronjobs in Python pflegt sonst drei Implementierungen der Jahresgrenze und erhält früher oder später drei verschiedene Antworten für dasselbe Geburtsdatum.
Konventionen offen benannt
Abschnitt betitelt „Konventionen offen benannt“Vier Achsen, auf denen Rechner auseinandergehen, und keine davon ist ein Fehler. Die meisten Implementierungen wählen stillschweigend; wir schreiben die Wahl in die Antwort und pflegen eine Seite mit Konventionen samt Durchlauf gegen einen externen CC0-Datensatz.
| Achse | Unsere Antwort |
|---|---|
| Jahresgrenze | 立春 Lichun, der exakte Moment aus den Ephemeriden |
| Tagesgrenze | 23:00, das frühe 子時 gehört zum nächsten Tag |
| Wahre Sonnenzeit | standardmäßig aus, per Flag einschaltbar |
| Sommerzeit | wird über timezoneOffset aufgelöst, das der Client sendet |
Beispiel
Abschnitt betitelt „Beispiel“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']Eine fertige App zum Klonen
Abschnitt betitelt „Eine fertige App zum Klonen“Live-Demo und Code auf GitHub, MIT.
Zwei Aufrufe, POST /v1/bazi/chart für 20 Credits und POST /v1/bazi/luck-pillars für 10, liefern die vier Säulen mit verborgenen Stämmen, Nayin und zwölf Stadien, den Tagesmeister mit Stärkeurteil, die Balance der Elemente, symbolische Sterne, Wechselwirkungen der Zweige und den Zehnjahreszyklus Da Yun. Die App zeichnet sie: das Jahr rechts, wie in der klassischen Notation, die Spalte des Tages markiert. Das Backend ist eine Route ohne Abhängigkeiten, denn genau darum geht es: Der Browser kann die API nicht direkt aufrufen, also lebt der Schlüssel auf dem Server.
git clone https://github.com/astroway/starter-bazicd starter-bazi && npm installcp .env.example .env # your key goes herenpm run devDrei Dinge, die du daraus mitnehmen solltest. Sende den Namen der Zone, nicht den Versatz: Asia/Shanghai ist am 1990-05-15 UTC+9, weil China von 1986 bis 1991 Sommerzeit hatte. Sende die Sprache: Standard ist Ukrainisch, und eine englische Seite ohne sie erhält die Namen der Elemente in der falschen Sprache. Sende das Geschlecht: Da Yun läuft abhängig davon vorwärts oder rückwärts, einen neutralen Wert gibt es nicht.
Sprachen
Abschnitt betitelt „Sprachen“Tiere, Elemente, Yin und Yang, Paläste und die zwölf Stadien sind in 21 Sprachen übersetzt. Füge ?lang=es hinzu, und neben dem englischen Token erscheint ein Feld *Name. Die englischen Felder ändern sich nie: Die Lokalisierung ergänzt, sie ersetzt nicht.
Stämme, Zweige, Namen der Sterne und 纳音 werden absichtlich nicht übersetzt: Ihr internationaler Name ist das Pinyin neben dem Schriftzeichen.