Για κάποιο λόγο τα καλώδια δεν τα διέσχισαν ποτέ σωστά. επειδή μπορείτε να εισαγάγετε XML στο Excel απευθείας από μια διεύθυνση URL, δεν χρειάζεται να χρησιμοποιήσετε το WINHTTP για να κάνετε απλά ερωτήματα υπηρεσίας ιστού REST.
Αρχικά άρχισα να χρησιμοποιώ την τεχνική αφού είδα τον κώδικα των υπηρεσιών Web Amazon που χρησιμοποιεί WinHTTP, ωστόσο δεν είναι απαραίτητο μόνο για την αίτηση της XML από μια υπηρεσία ιστού.
Απόδειξη της έννοιας: Ακολουθεί ένα γυμνό παράδειγμα χρήσης του Yahoo News Search API για να λάβετε τις τελευταίες ειδήσεις του Yahoo για το "Dan Rather" στο Excel. Αυτό απαιτεί μια έκδοση του Excel που υποστηρίζει XML:
1. Επισημάνετε και, στη συνέχεια, αντιγράψτε αυτό το URl:
http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=YahooDemo&query=Dan+Rather&results=10
2. Στο Excel μεταβείτε στο στοιχείο Δεδομένα-> XML-> Εισαγωγή
3. Στο πλαίσιο Όνομα αρχείου χρησιμοποιήστε τη Συντόμευση επικόλλησης (CTRL-V) για να εισαγάγετε τη διεύθυνση url που μόλις αντιγράψατε και πατήστε enter.
4. Το Excel θα σας ζητήσει από το κελί να εμφανίσει τα αποτελέσματα των ειδήσεων Yahoo
Έτσι, μόλις καταφέραμε να χρησιμοποιήσουμε μια υπηρεσία Yahoo Rest Webservice για να εισάγουμε δεδομένα στο Excel, χωρίς WINHTTP. Λάβετε υπόψη ότι αυτό είναι ένα παράδειγμα γυμνού οστού. Για να το επεξηγήσετε, προσθέστε έναν χάρτη στο βιβλίο εργασίας και χρησιμοποιήστε το XMLMaps.import αντι αυτου των παραδειγμάτων WINHTTP που χρησιμοποιώ.
Πότε θα χρησιμοποιούσα αυτήν τη στιγμή το WINHTTP με υπηρεσίες ιστού REST; Η καλύτερη μου εικασία μέχρι τώρα:
1. Όταν απαιτείται σύνδεση για την υπηρεσία. Σε αυτήν την περίπτωση πρέπει να χρησιμοποιήσω το SetCredentials
2. Όταν δεν θέλω να εισαγάγω τα δεδομένα XML σε έναν χάρτη XML, θέλω απλώς τα ακατέργαστα δεδομένα. Για παράδειγμα, θέλω να χειριστώ τα δεδομένα πριν τα γράψω σε ένα υπολογιστικό φύλλο ή πιθανώς να πλοηγηθώ στο XML και να επιλέξω και να επιλέξω ποια δεδομένα θα εμφανίζονται με βάση προσαρμοσμένα κριτήρια.
Τέλος, το XMLMAPS.Import και το WINHTTP λειτουργούν και τα δύο για κατανάλωση υπηρεσιών ιστού REST, ωστόσο το τελευταίο απαιτεί μερικές ακόμη γραμμές κώδικα. Θα συνεχίσω να σκοντάφτω με τις Υπηρεσίες Ιστού μέχρι να το μάθω (και φυσικά: να το κάνω σωστά). Αναρωτιέμαι αν κάποιος άλλος έχει παραδείγματα REST χρησιμοποιώντας το Excel;