Μετάβαση στο περιεχόμενο
AstroWay/api v2.325.0 · el
όλες οι υπηρεσίες λειτουργούν κανονικά

Μορφές πεδίων

Ένα μοντέλο που μαντεύει το όνομα ενός πεδίου λαμβάνει είτε 400, είτε, ακόμα χειρότερα, μια σίγουρη απάντηση για έναν διαφορετικό χάρτη. Παρακάτω είναι το ακριβές συμβόλαιο.

ΠεδίοΤύπος και μορφήΑπαιτούμενο
dateYYYY-MM-DD, και πρέπει να είναι μια πραγματική ημερομηνία ημερολογίουναι
timeHH:mm:ssναι, ή timeUnknown: true
timezoneOffsetαριθμός, ώρες από UTC, π.χ. 5.75όχι, προεπιλογή 0 (UTC)
timezoneόνομα ζώνης IANA, π.χ. Europe/Kyiv, ή autoόχι, και όταν σταλεί, αντικαθιστά το timezoneOffset
latitudeδεκαδικοί βαθμοί, βόρεια θετικάναι
longitudeδεκαδικοί βαθμοί, ανατολικά θετικάναι
houseSystemένα γράμμα, προεπιλογή Pόχι
cityσυμβολοσειρά, μόνο για ετικέταόχι
zodiacTypetropical ή siderealόχι

Τα lat, lon, lng, long, tz, tzOffset, utcOffset, gmtOffset, timeZone, time_zone επιστρέφουν 400 INVALID_FIELD με το όνομα του σωστού πεδίου:

{ "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)." } }

Η πεζή/κεφαλαία γραφή και οι διαχωριστές δεν έχουν σημασία: τα TZ_Offset και tzoffset απορρίπτονται με τον ίδιο τρόπο. Όλα τα πεδία που βρέθηκαν αναφέρονται αμέσως, όχι μόνο το πρώτο, ώστε να μπορείς να τα διορθώσεις όλα με μία κίνηση.

Ο λόγος είναι αυστηρός: πριν από αυτόν τον έλεγχο, ένα πεδίο που δεν διάβαζε το API έδινε σιωπηλά μια μετατόπιση 0, και η απάντηση ήταν ένας σίγουρος χάρτης για UTC. Τρεις ώρες μετατόπισης είναι περίπου 45° του ωροσκόπου, δηλαδή ένα διαφορετικό ανατέλλον ζώδιο, και καμία προειδοποίηση.

Η μετατόπιση πρέπει να είναι αυτή που είχαν τα ρολόγια ακριβώς εκείνη την ημερομηνία, και είναι εύκολο να την καθορίσεις λανθασμένα χειροκίνητα: το Κίεβο τον Μάιο του 1990 ζούσε με τη θερινή ώρα της Μόσχας, UTC+4, όχι +3. Στείλε το timezone, και ο διακομιστής θα λάβει τη μετατόπιση από τη βάση δεδομένων ζωνών ώρας, μαζί με τη θερινή ώρα.

{ "date": "1990-05-15", "time": "14:30:00", "timezone": "Europe/Kyiv",
"latitude": 50.45, "longitude": 30.52 }
  • Το auto καθορίζει τη ζώνη με βάση το latitude και το longitude. Κοντά στα σύνορα, το όνομα είναι πιο ακριβές.
  • Εάν το timezone και το timezoneOffset σταλούν μαζί, το timezone υπερισχύει. Το input.timezoneOffset στην απάντηση δείχνει τη μετατόπιση που χρησιμοποιήθηκε.
  • Η ώρα που υπήρξε δύο φορές (όταν τα ρολόγια πήγαν πίσω) λαμβάνεται την πρώτη φορά. Η ώρα που δεν υπήρξε (όταν τα ρολόγια πήγαν μπροστά) λαμβάνει τη μετατόπιση που ίσχυε πριν από την αλλαγή.
  • Χωρίς time (μόνο ημερομηνία ή timeUnknown: true) η ζώνη διαβάζεται για το τοπικό μεσημέρι.
  • Απορρίπτονται με 400 INVALID_FIELD: κενή τιμή, συντομογραφίες όπως EST ή PST, μετατόπιση γραμμένη ως κείμενο, όπως +03:00, ονόματα που δεν υπάρχουν στη βάση δεδομένων, και auto χωρίς συντεταγμένες. Τα UTC και GMT γίνονται δεκτά.
  • Κάθε αντικείμενο αναλύεται ξεχωριστά, οπότε το chart1 και το chart2 μπορούν να βρίσκονται σε διαφορετικές ζώνες.

Γίνονται δεκτοί ακριβώς αυτοί οι 25 μονογράμματοι κωδικοί (οι ίδιοι με το swetest):

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

Η πεζή/κεφαλαία γραφή έχει σημασία: το I είναι Sunshine κατά Makransky, το i κατά Trindl. Το όνομα του συστήματος ("Placidus", "Koch") επιστρέφει 400. Παλαιότερα λειτουργούσε τυχαία, επειδή η μηχανή διαβάζει μόνο το πρώτο γράμμα από τη συμβολοσειρά, και για τον ίδιο λόγο το "Zodiac" έδινε σιωπηλά Placidus.

Αντί για ένα φανταστικό μεσημέρι, στείλε timeUnknown: true και μην στείλεις time. Τότε τα houses, houseAspects, chartSect και siderealTime θα είναι null, αντί για φανταστικά. Λεπτομέρειες: Συμβάσεις API.

Οι άγνωστοι κλειδιά δεν απορρίπτονται

Ενότητα με τίτλο «Οι άγνωστοι κλειδιά δεν απορρίπτονται»

Το σώμα δέχεται επιπλέον πεδία σιωπηλά: ένα άγνωστο κλειδί απλά αγνοείται. Επομένως, ένα λάθος στο όνομα ενός πεδίου που δεν περιλαμβάνεται στην παραπάνω λίστα απορρίψεων δεν θα γίνει αντιληπτό. Συμβουλέψου την προδιαγραφή: /v1/openapi.json.