Salta ai contenuti
AstroWay/api v2.190.0 · it
tutti i sistemi sono operativi

Formati dei campi

Un modello che indovina il nome di un campo riceve un 400 o, peggio, una risposta sicura su un’altra carta. Di seguito è riportato il contratto esatto.

CampoTipo e formatoObbligatorio
dateYYYY-MM-DD, e deve essere un giorno di calendario reale
timeHH:mm:sssì, o timeUnknown: true
timezoneOffsetnumero, ore da UTC, es. 5.75no, predefinito 0 (UTC)
timezonenome della zona IANA, es. Europe/Kyiv, o autono, e quando inviato, sostituisce timezoneOffset
latitudegradi decimali, nord positivo
longitudegradi decimali, est positivo
houseSystemuna singola lettera, predefinito Pno
citystringa, solo per etichettano
zodiacTypetropical o siderealno

lat, lon, lng, long, tz, tzOffset, utcOffset, gmtOffset, timeZone, time_zone restituiscono 400 INVALID_FIELD con il nome del campo corretto:

{ "error": { "code": "INVALID_FIELD",
"message": "Unsupported field \"tz\". Rename it to \"timezoneOffset\" (numeric hours from UTC, e.g. 5.75; a zone name goes in timezone)." } }

Maiuscole/minuscole e separatori non contano: TZ_Offset e tzoffset sono rifiutati allo stesso modo. Tutti i campi trovati sono segnalati immediatamente, non solo il primo, in modo da poter correggere tutto in una volta.

Il motivo è severo: prima di questa convalida, un campo che l’API non leggeva dava silenziosamente un offset di 0, e la risposta era una carta sicura per UTC. Tre ore di offset sono circa 45° di ascendente, il che significa un segno ascendente diverso, e nessun avviso.

L’offset deve essere quello che gli orologi mantenevano esattamente in quella data, ed è facile specificarlo erroneamente a mano: Kiev nel maggio 1990 era in ora legale di Mosca, UTC+4, non +3. Invia timezone, e il server prenderà l’offset dal database dei fusi orari, inclusa l’ora legale.

{ "date": "1990-05-15", "time": "14:30:00", "timezone": "Europe/Kyiv",
"latitude": 50.45, "longitude": 30.52 }
  • auto determina la zona in base a latitude e longitude. Vicino a un confine, il nome è più preciso.
  • Se timezone e timezoneOffset sono inviati insieme, timezone ha la precedenza. input.timezoneOffset nella risposta mostra l’offset che è stato utilizzato.
  • Un’ora che si è verificata due volte (quando gli orologi sono stati spostati indietro) viene presa la prima volta. Un’ora che non si è verificata (quando gli orologi sono stati spostati avanti) riceve l’offset che era in vigore prima del cambio.
  • Senza time (solo data o timeUnknown: true), la zona viene letta a mezzogiorno locale.
  • Sono rifiutati con 400 INVALID_FIELD: valore vuoto, abbreviazioni come EST o PST, offset scritto come testo, come +03:00, nomi non presenti nel database, e auto senza coordinate. UTC e GMT sono accettati.
  • Ogni oggetto viene analizzato separatamente, quindi chart1 e chart2 possono essere in zone diverse.

Sono accettati esattamente questi 25 codici Swiss Ephemeris:

P K R C E W B M O A T V D F G H I i L N Q S U X Y

Maiuscole/minuscole sono significative: I è Sunshine di Makransky, i è di Trindl. Il nome del sistema ("Placidus", "Koch") restituisce 400. In precedenza funzionava per caso, perché il motore legge solo la prima lettera dalla stringa, e per lo stesso motivo "Zodiac" dava silenziosamente Placidus.

Invece di un mezzogiorno fittizio, passa timeUnknown: true e non passare time. In questo modo houses, houseAspects, chartSect e siderealTime arriveranno null, anziché fittizi. Dettagli: Convenzioni API.

Il corpo accetta campi extra silenziosamente: una chiave sconosciuta viene semplicemente ignorata. Pertanto, un errore nel nome di un campo non presente nell’elenco dei rifiuti sopra non si manifesterà. Consulta la specifica: /v1/openapi.json.

Utile?
Запропонувати правку

Ultimo aggiornamento: