Εισαγωγή στις Συγχωνευμένες Κλήσεις API
Οι συγχωνευμένες κλήσεις API είναι μια προηγμένη δυνατότητα της γέφυρας OpenCart - SoftOne που σας επιτρέπει να συνδυάζετε πολλαπλές κλήσεις API σε ένα ενιαίο αίτημα. Αντί να εκτελείτε ξεχωριστές κλήσεις για διαφορετικές πληροφορίες, μπορείτε να τις συγχωνεύσετε για καλύτερη απόδοση και ενοποιημένη διαχείριση δεδομένων.
Παράδειγμα
Αντί να κάνετε ξεχωριστές κλήσεις για getBrowserInfo και getBrowserData, μπορείτε να τις συγχωνεύσετε σε μία κλήση που επιστρέφει ενοποιημένο JSON με όλες τις πληροφορίες.
Τι Είναι οι Συγχωνευμένες Κλήσεις
Οι συγχωνευμένες κλήσεις λειτουργούν συνδυάζοντας:
- Πολλαπλές Κλήσεις API: Διαφορετικές κλήσεις που θα έκαναν ξεχωριστά
- Ενοποιημένη Απάντηση: Ένα JSON που περιέχει όλα τα δεδομένα
- Συγχρονισμένη Εκτέλεση: Όλες οι κλήσεις εκτελούνται ταυτόχρονα
Η γέφυρα διαχειρίζεται αυτόματα τη συγχώνευση και επιστρέφει ένα ενοποιημένο JSON που περιλαμβάνει:
- Τα δεδομένα πεδίων (Fields) από όλες τις κλήσεις
- Τις τιμές δεδομένων (Data Values) από όλες τις κλήσεις
- Πληροφορίες κατάστασης για κάθε κλήση
Πλεονεκτήματα
Βελτιωμένη Απόδοση
Μείωση του συνολικού χρόνου απόκρισης εκτελώντας πολλαπλές κλήσεις παράλληλα
Λιγότερες Κλήσεις
Μείωση του network overhead με λιγότερες HTTP κλήσεις
Ενοποιημένα Δεδομένα
Λήψη συσχετισμένων δεδομένων σε ένα ενιαίο JSON response
Συγχρονισμός
Εξασφάλιση ότι όλα τα δεδομένα είναι από την ίδια χρονική στιγμή
Διαδικασία Ρύθμισης
Για να ρυθμίσετε συγχωνευμένες κλήσεις API, ακολουθήστε τα παρακάτω βήματα:
- Εντοπισμός Κλήσεων προς Συγχώνευση
Προσδιορίστε ποιες κλήσεις API θέλετε να συγχωνεύσετε. Καλές επιλογές είναι κλήσεις που:
- Χρησιμοποιούνται συχνά μαζί
- Αφορούν συσχετισμένα δεδομένα
- Έχουν παρόμοιους χρόνους εκτέλεσης
- Δημιουργία Συγχωνευμένης Κλήσης
Στο διαχειριστικό περιβάλλον της γέφυρας:
- Μεταβείτε στην ενότητα "Προσαρμοσμένες Κλήσεις API"
- Επιλέξτε "Δημιουργία Συγχωνευμένης Κλήσης"
- Ορίστε τις κλήσεις που θέλετε να συγχωνεύσετε
- Διαμόρφωση Παραμέτρων
Για κάθε κλήση που συμμετέχει στη συγχώνευση:
- Ορίστε το URL endpoint
- Καθορίστε τις παραμέτρους
- Ρυθμίστε τις headers αν χρειάζεται
- Ρύθμιση Response Mapping
Καθορίστε πώς θα συγχωνευτούν οι απαντήσεις στο τελικό JSON
Παραδείγματα Χρήσης
Παράδειγμα 1: Συγχώνευση getBrowserInfo και getBrowserData (Πρακτικό Παράδειγμα)
Ας δούμε ένα πραγματικό παράδειγμα συγχώνευσης δύο κλήσεων για λήψη πληροφοριών προϊόντων από το SoftOne ERP:
Παραδοσιακή Προσέγγιση (2 ξεχωριστές κλήσεις):
getBrowserInfo → Λήψη πληροφοριών δομής και πεδίωνgetBrowserData → Λήψη πραγματικών δεδομένων προϊόντωνΣυγχωνευμένη Προσέγγιση (1 κλήση):
GET /csl_softone_merged_requests.php?group_name=0 → Ενοποιημένη λήψη δομής και δεδομένων
Αιτήματα που Συγχωνεύονται:
Αίτημα 1 - getBrowserInfo:
{"username": "demo_user","password": "!Demo-P@ss123","appId": "2001","COMPANY": "2000","BRANCH": "2000","REFID": "128","MODULE": "0","service": "getBrowserInfo","clientID": "%clientid%","OBJECT": "ITEM","LIST": "DemoProductList"}
Αίτημα 2 - getBrowserData:
{"service": "getBrowserData","clientID": "%clientid%","AppId": "2001","reqID": "%products_reqid%","LIST": "DemoProductList","LIMIT": 10}
Ενοποιημένη Απάντηση (συντομευμένη):
{"success": "true","authentication_status": "success","requests": [{"service": "getBrowserInfo","username": "demo_user","appId": "2001","COMPANY": "2000","OBJECT": "ITEM","LIST": "DemoProductList"},{"service": "getBrowserData","AppId": "2001","reqID": "XC901234A5B6C7D8","LIST": "DemoProductList","LIMIT": 10}],"rows": [{"FLD-1": "ITEM;12345","ITEM.CODE": "12345","ITEM.NAME": "Demo Product Name","ITEM.WEBPAGE": "Δείγμα Προϊόντος","ITEM.V12": "Vanilla","ITEM.V13": "Κατηγορία Δείγματος","ITEM.SODISCOUNT": "5.00","ITEM.UPDDATE": "2024-01-15 10:30:00"},{"FLD-1": "ITEM;12346","ITEM.CODE": "12346","ITEM.NAME": "Another Demo Product","ITEM.WEBPAGE": "Άλλο Δείγμα Προϊόντος","ITEM.V12": "Chocolate","ITEM.SODISCOUNT": "7.50"}],"clientID": "Ab1Cd2Ef3Gh4Ij5Kl6Mn7Op8Qr9St0Uv1Wx2Yz3...","message": "Merged requests for group \"0\" executed."}
Πλεονεκτήματα αυτού του παραδείγματος:
- • Μία κλήση αντί για δύο ξεχωριστές
- • Ενοποιημένη απάντηση με όλες τις πληροφορίες
- • Αυτόματη διαχείριση του reqID μεταξύ των κλήσεων
- • Συγχρονισμένα δεδομένα από την ίδια χρονική στιγμή
Παράδειγμα 2: Δομή Απάντησης
Η βασική δομή μιας συγχωνευμένης απάντησης περιλαμβάνει:
{"success": "true","authentication_status": "success","requests": [// Εδώ εμφανίζονται οι κλήσεις που εκτελέστηκαν],"rows": [// Εδώ εμφανίζονται τα δεδομένα],"clientID": "...","message": "Merged requests for group \"0\" executed."}
Μορφή Απάντησης
Οι συγχωνευμένες κλήσεις επιστρέφουν JSON με την παρακάτω δομή:
| Πεδίο | Περιγραφή | Τύπος |
|---|---|---|
| success | Κατάσταση επιτυχίας της συγχωνευμένης κλήσης | string ("true"/"false") |
| authentication_status | Κατάσταση αυθεντικοποίησης | string |
| requests | Πίνακας με τις κλήσεις που εκτελέστηκαν | array |
| rows | Πίνακας με τα αποτελέσματα δεδομένων | array |
| clientID | Το Client ID που χρησιμοποιήθηκε | string |
| message | Μήνυμα επιβεβαίωσης εκτέλεσης | string |
Βέλτιστες Πρακτικές
Επιλογή Κλήσεων
- Συγχωνεύστε κλήσεις που χρησιμοποιούνται συχνά μαζί
- Αποφύγετε τη συγχώνευση πολύ αργών κλήσεων με γρήγορες
- Ομαδοποιήστε κλήσεις με παρόμοια δεδομένα
Απόδοση
- Μην συγχωνεύετε περισσότερες από 5-7 κλήσεις
- Χρησιμοποιήστε caching όπου είναι δυνατόν
- Μονιτοράρετε τους χρόνους απόκρισης
Διαχείριση Σφαλμάτων
- Ελέγξτε την κατάσταση κάθε μεμονωμένης κλήσης
- Υλοποιήστε fallback στρατηγικές
- Καταγράψτε σφάλματα για debugging
Αντιμετώπιση Προβλημάτων
Συχνά Προβλήματα
Μία κλήση αποτυγχάνει
Αίτιο: Πρόβλημα σε συγκεκριμένο API endpoint
Λύση: Ελέγξτε το success και authentication_status για λεπτομέρειες
Αργή απόκριση
Αίτιο: Πολλές ή αργές κλήσεις στη συγχώνευση
Λύση: Μειώστε τον αριθμό κλήσεων ή χωρίστε σε μικρότερες ομάδες
Διαφορετικά δεδομένα
Αίτιο: Οι κλήσεις εκτελούνται σε διαφορετικές χρονικές στιγμές
Λύση: Οι συγχωνευμένες κλήσεις εκτελούνται συγχρονισμένα - ελέγξτε το message για επιβεβαίωση
Debug Tips
- Ελέγξτε το
requestsarray για να δείτε ποιες κλήσεις εκτελέστηκαν - Επιβεβαιώστε ότι το
successείναι "true" και τοauthentication_statusείναι "success" - Μονιτοράρετε τους χρόνους εκτέλεσης στα logs
- Δοκιμάστε τις κλήσεις μεμονωμένα πριν τη συγχώνευση
- Ελέγξτε το
messagefield για πληροφορίες εκτέλεσης - Βεβαιωθείτε ότι το
clientIDείναι το ίδιο σε όλες τις κλήσεις
Σχετικοί οδηγοί
- Custom κλήσεις SoftOne API
Η βασική ρύθμιση των API calls πριν τα συνδυάσετε σε ένα request.
- Custom JSON προϊόντων με getBrowserInfo και getBrowserData
Πρακτικό παράδειγμα κλήσεων που συχνά χρησιμοποιούνται μαζί.
- Συγχρονισμός πελατών από SoftOne σε OpenCart
Πώς εφαρμόζεται η ίδια λογική σε δεδομένα πελατών.
Χρειάζεστε Υποστήριξη;
Οι συγχωνευμένες κλήσεις API είναι προηγμένη λειτουργικότητα που μπορεί να απαιτεί εξειδικευμένη ρύθμιση. Αν χρειάζεστε βοήθεια με:
- Σχεδιασμό της αρχιτεκτονικής συγχώνευσης
- Βελτιστοποίηση της απόδοσης
- Αντιμετώπιση προβλημάτων
- Προσαρμοσμένες υλοποιήσεις
Η ομάδα τεχνικής υποστήριξης είναι στη διάθεσή σας.
Επικοινωνία Υποστήριξης