# Κανένα αποτέλεσμα ή σφάλμα API: πώς να κάνετε τη διάκριση;

> Διαχωρίστε το κενό αποτέλεσμα, μερική απάντηση και σφάλμα API του ROOTE. Ελέγξτε συντεταγμένες, φίλτρα, κάλυψη και όρια για να εμφανίσετε το σωστό μήνυμα.

Source: https://www.roote.ai/el/guides/%CE%BA%CE%B1%CE%BD%CE%B5-%CE%B4%CE%B9%CE%B1%CE%BA%CF%81%CE%B9%CF%83%CE%B7-%CE%BC%CE%B5%CF%84%CE%B1%CE%BE%CF%85-%CE%B1%CF%80%CE%BF%CF%85%CF%83%CE%B9%CE%B1%CF%82-%CE%B1%CF%80%CE%BF%CF%84%CE%B5%CE%BB%CE%B5%CF%83%CE%BC%CE%B1%CF%84%CE%BF%CF%82-%CE%BA%CE%B1%CE%B9-%CE%BB%CE%B1%CE%B8%CE%BF%CF%85%CF%82-api/
Language: el
Author: ROOTE

Ένα API χωρίς αποτέλεσμα και ένα API με σφάλμα απαιτούν δύο διαφορετικές επεξεργασίες. Μια επιτυχημένη αναζήτηση μπορεί να μην επιστρέψει κανένα μέρος εντός του ζητούμενου περιορισμένου χώρου. Αντίθετα, ένα σφάλμα δικτύου, η υπέρβαση ορίου ή μια μη διαθέσιμη πηγή εμποδίζει να βγάλουμε συμπέρασμα από την αναζήτηση.

Για το ROOTE, ελέγξτε πρώτα την HTTP απάντηση, μετά την επιχειρηματική κατάσταση, τη συλλογή που αναμένεται και την κάλυψη. Αυτή η διαδικασία αποφεύγει την εμφάνιση «κανένα τουαλέτα» όταν μια κλήση Υπηρεσιών απέτυχε ή «κανένα στάση» μετά από υπέρβαση χρόνου αναμονής.

## Ανάγνωση των τριών επιπέδων μιας απόκρισης

| Επίπεδο | Προς έλεγχο | Πιθανό συμπέρασμα |
| --- | --- | --- |
| Μεταφορά | Σύνδεση, χρόνος αναμονής και HTTP κατάσταση | Ο αιτούμενος ολοκληρώθηκε επιτυχώς; |
| Σύμβαση | Έγκυρο JSON, έκδοση και αναμενόμενα πεδία | Είναι η απάντηση αξιοποιήσιμη; |
| Επιχειρηματικό αποτέλεσμα | status, collections, coverage, warnings και meta | Τι γνωρίζουμε εντός του ζητούμενου πεδίου; |

Ο κωδικός HTTP 200 δεν αρκεί για να επικυρώσει μια αναζήτηση. Η απάντηση μπορεί να σηματοδοτεί μερική εκτέλεση ή κατάσταση error. Αντίθετα, ένα 404 σε ένα route δεν είναι ο κανόνας για να δηλώσει μια κενή συλλογή: ελέγξτε το URL και τη σύμβαση.

## Κατανόηση των success, empty, partial και error

| Κατάσταση | Προτεινόμενη επεξεργασία |
| --- | --- |
| success | Εμφανίστε τις οντότητες μετά από επικύρωση και διατηρήστε τα όρια |
| empty | Πληροφορήστε ότι δεν επιστράφηκε κανένα αποτέλεσμα για αυτή την αναζήτηση |
| partial | Εμφανίστε τις χρησιμοποιήσιμες πληροφορίες με τις προειδοποιήσεις τους |
| error | Παρουσιάστε την αναζήτηση ως μη διαθέσιμη· μην καταλήγετε σε απουσία τόπων |

Η απουσία αποτελέσματος αφορά ένα αίτημα και γνωστές πηγές. Δεν αποδεικνύει ότι φυσικά δεν υπάρχουν υπηρεσίες. Μη εξαντλητική κάλυψη, αυστηρό φίλτρο ή επιβεβλημένο όριο μπορεί να περιορίσουν τα αποτελέσματα.

## Ένα δέντρο αποφάσεων για το περιβάλλον χρήστη σας

```
1. La requête a-t-elle abouti ?
   Non → indisponibilité réseau ou délai dépassé.
2. Le statut HTTP est-il acceptable selon le contrat ?
   Non → traiter le code et le message d'erreur.
3. Le JSON respecte-t-il le schéma attendu ?
   Non → réponse inexploitable, jamais "aucun résultat".
4. Le statut métier est-il error ?
   Oui → recherche indisponible.
5. Le statut est-il partial ou la couverture limitée ?
   Oui → résultats utilisables + avertissement.
6. La collection attendue est-elle vide ?
   Oui → aucun résultat retourné dans ce périmètre.
   Non → afficher les résultats et leurs limites.
```

## Ελέγξτε τις παραμέτρους με τη σωστή σειρά

Ελέγξτε πρώτα το γεωγραφικό πλάτος και μήκος, τη σειρά τους και την προκύπτουσα πόλη. Στη συνέχεια ελέγξτε τη μονάδα ακτίνας και το λεξιλόγιο των φίλτρων. Το API Υπηρεσιών χρησιμοποιεί types=toilets· ένα URL χάρτη χρησιμοποιεί modes=toilets. Αυτές οι παράμετροι ανήκουν σε διαφορετικές συμβάσεις.

Επεκτείνετε μετά μόνο μια διάσταση τη φορά: αυξήστε την ακτίνα εντός των ορίων της διαδρομής ή αφαιρέστε ένα φίλτρο για σαφή δοκιμή. Κρατήστε ιστορικό του αρχικού αιτήματος. Αν επεκτείνετε αυτόματα, ενημερώστε το χρήστη για το νέο πεδίο.

[Κατασκευή αναζήτησης API γύρω από GPS συντεταγμένες](https://www.roote.ai/el/guides/pos-na-mporeite-na-vriskete-staseis-metanaston-meso-enos-api/)

## Επεξεργασία μη διαθέσιμης πηγής χωρίς να χάσετε τις άλλες

Μια μερική απάντηση μπορεί να περιέχει τόπους από πηγές που ανταποκρίθηκαν ενώ άλλη απέτυχε. Διατηρήστε αυτά τα αποτελέσματα, τις αναθέσεις τους και την σχετική προειδοποίηση. Μην παρουσιάζετε την λίστα ως εξαντλητική και μην αντικαθιστάτε ελλείποντα πεδία με παραπλανητικές προεπιλεγμένες τιμές.

Πληροφορία από μνήμη cache, παλιά, μπορεί επίσης να είναι χρήσιμη αν η πολιτική σας επιτρέπει επέκταση. Πρέπει να παραμένει επισημασμένη ως παλιά. Η ώρα λήψης του αιτήματος δεν ανανεώνει την αρχική παρατήρηση.

## Προσαρμόστε τα μηνύματα και τις ανακτήσεις

| Κατάσταση | Μήνυμα προς προσαρμογή στο περιβάλλον σας | Ενέργεια |
| --- | --- | --- |
| empty | Δεν επιστράφηκε κανένα αποτέλεσμα σε αυτή την περιοχή με αυτά τα φίλτρα | Αλλάξτε την περιοχή ή τα φίλτρα |
| partial | Ορισμένα αποτελέσματα είναι διαθέσιμα· η αναζήτηση είναι ελλιπής | Εμφανίστε τα αποτελέσματα και την προειδοποίηση |
| Σφάλμα επικύρωσης | Η αναζήτηση περιέχει μη έγκυρη παράμετρο | Διορθώστε το αίτημα |
| Πιστοποίηση ή δικαιώματα | Αυτή η πρόσβαση δεν επιτρέπει αυτή την αναζήτηση | Ελέγξτε τον λογαριασμό ή το token |
| Όριο ή μη διαθεσιμότητα | Η αναζήτηση είναι προσωρινά μη διαθέσιμη | Τηρήστε τις οδηγίες επανάληψης |

Για 429, συμβουλευτείτε τις οδηγίες της υπηρεσίας και ενδεχόμενο Retry-After. Σφάλμα 400 απαιτεί διόρθωση παραμέτρων· η επανάληψη της ίδιας αναζήτησης δεν το διορθώνει. Μην μετατρέπετε αυτόματα ένα 401 σε ανώνυμη κλήση εάν ο χρήστης παρείχε token.

[Αναφορά σφαλμάτων API ROOTE](https://doc.roote.ai/roote-api/errors)

[Κατάσταση υπηρεσιών ROOTE](https://status.roote.ai/)

## Δοκιμάστε τις τέσσερις καταστάσεις πριν την δημοσίευση

Προετοιμάστε πλήρεις, κενές, μερικές και σφάλματος απαντήσεις δοκιμής, καθώς και μη έγκυρο JSON και υπέρβαση χρόνου. Ελέγξτε το εμφανιζόμενο μήνυμα, τα διατηρημένα αποτελέσματα και τις επαναλήψεις. Το βασικό τεστ είναι να μην παράγει ποτέ μια βλάβη δήλωση απουσίας υπηρεσιών.

[Εφαρμόστε αυτούς τους κανόνες σε έναν βοηθό τεχνητής νοημοσύνης](https://www.roote.ai/el/guides/poso-na-dimiourgiso-voitho-pou-vrisketai-mobilita-gia-mia-dieuthinsi/)

[Κατανόηση δομών δεδομένων κινητικότητας](https://www.roote.ai/el/guides/gtfs-gtfs-rt-kai-gbfs-poies-einai-oi-diaforeis/)

## Συχνές ερωτήσεις

### Αποδεικνύει μια κενή λίστα την απουσία τουαλετών;

Όχι. Απλώς υποδεικνύει ότι δεν επιστράφηκε κανένα αποτέλεσμα για αυτή την αναζήτηση και τις πηγές που ελέγχθηκαν.

### Μπορούμε να εμφανίσουμε μια μερική απάντηση;

Ναι, αν οι οντότητες που χρησιμοποιούνται είναι έγκυρες και διατηρείτε τις σχετικές προειδοποιήσεις και όρια.

### Πρέπει να επανεκκινάμε κάθε σφάλμα;

Όχι. Διορθώστε σφάλματα παραμέτρων ή πρόσβασης· περιορίστε τις επαναλήψεις για προσωρινά προβλήματα και τηρήστε τις οδηγίες της υπηρεσίας.
