[Powered by Google Translate] [Σεμινάριο] [Εισαγωγή του προγραμματιστή να APIs] [Billy Janitsch] [Πανεπιστήμιο του Χάρβαρντ] [Tommy MacWilliam] [Αυτό είναι CS50.] [CS50.TV] Γεια σου, όλοι, είμαι Μπίλι, και σήμερα είμαι πρόκειται να μιλάμε για API, ή διεπαφές προγραμματισμού εφαρμογών, Συγκεκριμένα, στο πλαίσιο της τελικής CS50 έργα και αυτό το είδος του πράγματος. Σε γενικές γραμμές αυτό είναι ένα API; Σε πολύ γενικές γραμμές, είναι ένα είδος μέση τον άνθρωπο που επιτρέπει 2 κομμάτια του λογισμικού για την επικοινωνία με τον άλλον. Αυτό είναι ένα είδος πολύ ευρύ ορισμό και δεν είναι ότι σημασία για αυτό που ψάχνουμε σε. Αυτό που πραγματικά θέλουμε είναι ένα είδος χρήσιμο μέσο έδαφος να επικοινωνούν με κάποιο είδος της βάσης δεδομένων κάπου. Εδώ είναι ένα διάγραμμα, και βασικά η ιδέα είναι ότι είμαστε μια εφαρμογή, και θέλουμε να πάρετε τα στοιχεία από μια βάση δεδομένων, αλλά δεν θέλουμε να θέσει υπό αμφισβήτηση τη βάση δεδομένων άμεσα. Αντ 'αυτού θέλουμε να πάμε μέσα από αυτό το είδος της μέση τον άνθρωπο, το API. Η ιδέα πίσω από αυτό είναι οι αριθμοί 2 και 3 στο διάγραμμα και οι δύο πρόκειται να είναι πολύ περίπλοκη και μπερδεμένη. Με άλλα λόγια, όταν η ΑΡΙ επερώτηση της βάσης δεδομένων, αυτό είναι κατά πάσα πιθανότητα πρόκειται να χρησιμοποιούν SQL πίνακες και όλα αυτού του είδους τα πράγματα, και έχουμε μάθει λίγο για αυτό το CS50, αλλά συνολικά, έχετε παρατηρήσει ότι είναι ένα κομμάτι από ένα πόνο. Παίρνει πολύ, πολύ περίπλοκη και μπερδεμένη, ειδικά όταν θέλετε να κάνετε σύνθετα ερωτήματα και ότι το είδος του πράγματος. Αυτό που πραγματικά θέλουμε είναι ένα είδος χρήσιμο και απλό τρόπο για να πάρει αυτά τα δεδομένα, και αυτή είναι η ιδέα πίσω από τους αριθμούς 1 και 4 στο διάγραμμα. Με άλλα λόγια, θέλουμε ένα πολύ απλό τρόπο για να πει το API για να πάρει ό, τι για μας και ένα πολύ απλό τρόπο για να πάρει πίσω τα δεδομένα. Υπάρχει ένας βασικός τρόπος ότι τα δεδομένα αυτά είναι συνήθως αποστέλλονται και λαμβάνονται, που είναι JSON, ή JavaScript Object Notation. Αυτό μπορεί να διαφέρουν λίγο όσον αφορά το πώς μπορείτε να στείλετε την αίτηση στο API. Με άλλα λόγια, αν θέλετε κάποιο συγκεκριμένο ποσό των δεδομένων, πώς να σας πω το API για να πάρει ότι τα δεδομένα μπορεί να διαφέρουν λίγο. Συνήθως αυτό περιλαμβάνει την πραγματοποίηση κάποιου είδους αίτημα προς το δίκτυο. Με άλλα λόγια, η πρόσβαση σε κάποιο είδος του URL που πρόκειται να πει το API ακριβώς ό, τι θέλετε, αλλά τα δεδομένα είναι σχεδόν πάντα στέλνονται πίσω, με άλλα λόγια, ο αριθμός 4 σε JSON. Τι είναι ακριβώς JSON; Όπως είπα, Object Notation JavaScript. Είναι ουσιαστικά το παγκόσμιο πρότυπο για τη μετάδοση και λήψη δεδομένων. Η ιδέα είναι ότι έχετε αυτές τις 3 κατηγορίες των πραγμάτων. Έχετε συστοιχίες, hashmaps, και αρχέτυπα. Πίνακες και hashmaps έχετε κοίταξε λίγο το CS50, αλλά έχετε πάρει το είδος της μια πολύ στενή έννοια του τι είναι. Με άλλα λόγια, με πίνακες ξέρεις ότι είσαι ο τύπος δεσμεύεται, έτσι ώστε να έχετε μόνο ένα είδος του τύπου που πηγαίνει σε όλο το φάσμα. JSON είναι πολύ πιο επιεικής με αυτό το είδος του πράγματος. Ουσιαστικά η ιδέα είναι να κατασκευάσετε αυτό το αντικείμενο, η οποία μπορεί να αποτελείται από οποιοδήποτε από αυτά τα 3 πράγματα και μπορεί να αποτελείται από πολλαπλά αυτά από αυτούς, και μπορούν να είναι ένθετες. Εδώ είναι το είδος του ένα παράδειγμα του JSON, που είναι αυτές οι αγκύλες εδώ αντιπροσωπεύουν HashMap σας, και ένα HashMap είναι βασικά μια χαρτογράφηση από κάποιο είδος των βασικών σε κάποιο είδος αξίας. Θα δείτε εδώ ότι έχουμε το κλειδί ιδιότητες, και ότι είναι χαρτογράφηση σε μια σειρά, η οποία είναι όλο αυτό το πράγμα. Βλέπουμε ένα άλλο στοιχείο του HashMap, το οποίο είναι αυτό το βασικό isAwesome, η οποία αντιστοιχεί σε ένα πρωτόγονο αξία της αληθινής, με άλλα λόγια, μια boolean. Primitives μπορεί να είναι χορδές. Μπορούν να είναι ακέραιοι. Μπορούν να bools, κάτι τέτοιο. Και να δείτε τα περιεχόμενα αυτού του πίνακα ότι οι ιδιότητες σημεία να έχει 2 χορδές σε αυτό, αυτο-όμοια και υπέροχη. Αυτά είναι 2 ακίνητα του JSON, και βλέπουμε ότι JSON είναι φοβερό. Για να δούμε ότι μια λίγο πιο προσεκτικά Πάω να κατασκευάσει ένα πιο σύνθετο παράδειγμα του JSON εδώ. Ας ξεκινήσουμε με μια σειρά, για παράδειγμα, μόνο μια κενή σειρά. Αλλά αυτό είναι το είδος της βαρετό, έτσι θα πάμε για να γεμίσουν ένα κομμάτι, και, όπως είπα, σε συστοιχίες JSON είναι τύπου συνδεδεμένη, έτσι θα μπορούσαμε να έχουμε επίσης μια σειρά εδώ, το οποίο είναι hi, και αυτό είναι ένα άλλο στοιχείο του εν λόγω πίνακα. Και επίσης, θα μπορούσαμε να προσθέσουμε ένα hashmapping εδώ, η οποία πρόκειται να έχει μερικά αντιστοιχίσεις. Είναι πρόκειται να έχουν μια χαρτογράφηση από το όνομα της σειράς Μπίλι. Έχουμε μια χαρτογράφηση από το όνομα Μπίλι, και έχουμε μια χαρτογράφηση των το αγαπημένο χρώμα μπλε. Αυτό είναι βασικά ένα καλό παράδειγμα του JSON. Είναι το είδος της παίρνει σε κραυγών, χρειάζεται ένα κόμμα εκεί, όλα τα διαφορετικά μέρη του. Και πάλι, αυτό δεν είναι ο τύπος δεσμεύεται καθόλου, ώστε να μπορείτε να έχετε οποιοδήποτε είδος των ειδών μέσα ό, τι θέλετε, και η ιδέα είναι ότι είναι αυτο-όμοια. Με άλλα λόγια, το δικαίωμα αυτό εδώ είναι ένα αντικείμενο JSON, όπως είναι όλο αυτό το πράγμα, όπως είναι ακριβώς αυτό, έτσι μπορείτε να έχετε μια πρωτόγονη είναι ένα αντικείμενο, ένας πίνακας να είναι ένα αντικείμενο ή ένα HashMap να είναι ένα αντικείμενο. Όπως μπορείτε να δείτε το είδος του, JSON είναι πραγματικά, πραγματικά χρήσιμο στο ότι είναι τόσο ευέλικτο. Μπορείτε να έχετε τυχόν στοιχεία που μπορεί να συλλάβει αποθηκεύονται σε JSON. Αυτό το καθιστά μια πολύ ωραία γλώσσα για χρήση με τα API γιατί λίγο πολύ σημαίνει ότι δεν έχει σημασία τι στοιχεία που θέλετε υπάρχει μετάβαση να είναι κάποιος τρόπος να το πάρει πίσω σε JSON. Μερικές ιδιότητες που κάνουν JSON ιδιαίτερα καλή για αυτό το είδος του πράγματος. Όπως μπορείτε να δείτε, σε σύγκριση με πολλά από τα πράγματα που έχετε εργαστεί με το CS50 είναι συγκριτικά πολύ εύκολο να διαβάσει και επίσης πολύ εύκολο να γράψει. Μπορείτε να το περίπτωση, αν θέλετε, όπως έκανα σε αυτό το παράδειγμα, το οποίο σας δίνει μια ωραία, όμορφη έκδοση που μπορείτε να δείτε πραγματικά καλά. Αλλά επιπλέον, είναι επίσης εύκολο να διαβάσει και να γράψει για έναν υπολογιστή. Με άλλα λόγια, είναι εύκολο να αναλύσει και εύκολο για την κωδικοποίηση, πράγμα που σημαίνει ότι είναι αρκετά γρήγορα όσον αφορά την ανάγνωση των δεδομένων ανησυχεί, JSON και μπορεί να δημιουργηθεί πολύ γρήγορα. Είναι επίσης πολύ εύκολο να έχει πρόσβαση σε διάφορες περιοχές του JSON και αυτό το είδος του πράγματος. Αυτό είναι ωραίο, και, επιπλέον, το γεγονός ότι είναι αυτο-όμοια, Με άλλα λόγια, το γεγονός ότι μπορείτε να έχετε JSON JSON μέσα στο JSON είναι πολύ ωραίο για την αποθήκευση δεδομένων. Ένα άλλο μέρος που είναι γενικά πολύ χρήσιμη σε συνεργασία με τα API είναι jQuery. Έχετε μάθει ένα μικρό κομμάτι του JavaScript, το οποίο είναι ένας ωραίος τρόπος να χειραγωγήσουν HTML και CSS μέσα σε έναν ιστοχώρο. Αλλά αυτό μπορεί να είναι το είδος του πόνου σε ένα κώδικα JavaScript στην πεδιάδα, κυρίως επειδή το JavaScript είναι μια γλώσσα πολύ φλύαρο. Θα πρέπει να μάθουν πολλά από τη σύνταξη, και απλά να κάνει πολύ απλά πράγματα χρειάζεται πολλή κώδικα, έτσι jQuery είναι μια βιβλιοθήκη για το JavaScript. Με άλλα λόγια, πρόκειται για ένα αρχείο JavaScript που μπορείτε να φορτώσετε και στη συνέχεια χρησιμοποιήστε jQuery λειτουργίες για να κάνει ορισμένα πράγματα. Και jQuery κάνει ουσιαστικά τη ζωή σας πολύ πιο εύκολη. Αυτό απλοποιεί ό, τι θα έπαιρνε εκατοντάδες γραμμές σε JavaScript κάτω σε λίγες γραμμές σε jQuery. Είναι ιδιαίτερα χρήσιμο αν είστε με τη χρήση APIs, επειδή γενικά το πώς θα πρέπει να έχουν πρόσβαση APIs είναι κάνοντας AJAX αιτήματα, και πιστεύω ότι ο David έχει αναφέρει ότι σε διάλεξη AJAX αιτήματα είναι γενικά όταν κάνεις ένα αίτημα προς το δίκτυο για κάποιο είδος του διακομιστή και να πάρει πίσω κάποια από τα δεδομένα και την ενημέρωση μιας σελίδας ακαριαία. Ότι στην πεδιάδα JavaScript που θα λάβουν τρελό αριθμό των γραμμών να επικυρώσει όλες τις κεφαλίδες και τα κάνει όλα αυτού του είδους τα πράγματα, jQuery έχει μια πολύ απλή λειτουργία που ονομάζεται AJAX, και το μόνο που έχετε να κάνετε σε AJAX είναι να δώσουμε τις παραμέτρους που θέλετε να δώσετε το API, η θέση του API και κάθε είδους πρόσθετες επιλογές που θέλετε να διαμορφώσετε. Είναι πραγματικά, πολύ όμορφο και πολύ χρήσιμο για αυτό το είδος του πράγματος. Αυτό είναι το μόνο που χρειάζεται για να ξεκινήσει να πάρει τα χέρια μας βρώμικα σε APIs. Πάω να φέρει επάνω μερικά παραδείγματα και να εξερευνήσουν διαφορετικές ιδιότητες τους και γιατί είναι χρήσιμο για τα διάφορα είδη των πραγμάτων. Το πρώτο πράγμα που θα σας δείξω πραγματικά είναι κάτι που δουλεύω στο ερευνητικό εργαστήριο μου, το οποίο είναι ένα πρόγραμμα προβολής Ngram, και βασικά η ιδέα της προβολής Ngram είναι ότι μπορείτε να ψάξετε για κάποιο είδος της λέξης ή φράση και να δείτε πόσο συχνά εμφανίστηκε σε ένα ορισμένο σύνολο του κειμένου την πάροδο του χρόνου. Το παράδειγμα εδώ είναι το σύνολο των δεδομένων των μωρών ζώα που έχουν γεννηθεί στη Νέα Υόρκη μεταξύ του 1920 και του 2000. Μπορούμε να ψάξουμε, για παράδειγμα, για την Jennifer όνομα, και βλέπουμε ότι οι προ του 1960 που πραγματικά δεν χρησιμοποιήθηκε τόσο πολύ, και στη συνέχεια, όπως έχουμε μπει σε επόμενα χρόνια είναι όλο και χρησιμοποιούνται όλο και περισσότερο. Μπορούμε επίσης να κάνουμε συγκρίσεις, οπότε αν συγκρίνουμε την Jennifer, για παράδειγμα, Θωμάς, μπορούμε να δούμε Thomas ήταν αρκετά διαδεδομένη σε όλη την ιστορία, λαμβάνοντας υπόψη ότι η Jennifer είναι μια πιο πρόσφατη όνομα. Μπορούμε να κάνουμε αυτό το είδος του πράγματος. Πώς λειτουργεί αυτό εφαρμογή; Ουσιαστικά, λειτουργεί μέσω ενός API. Με άλλα λόγια, έχουμε ορισμένες παραμέτρους εδώ. Έχουμε τις παραμέτρους του τι είμαστε στην πραγματικότητα ψάχνουν για, που είναι αυτά τα ονόματα, και τότε θα έχουμε μερικές άλλες ιδιότητες, όπως τον άξονα Υ και του άξονα Χ. Μπορείτε να δείτε έχουμε μερικές διαφορετικές επιλογές όσον αφορά το ανάλυση χρόνου να χρησιμοποιήσουν και αυτό το είδος του πράγματος. Έχουμε αυτές τις επιλογές όσον αφορά τα δεδομένα που πραγματικά θέλουμε από τη βάση δεδομένων, και θέλουμε να πάρετε πίσω τα δεδομένα με κάποιο χρήσιμο τρόπο. Κανονικά, αν ήμασταν ρωτώντας τη βάση δεδομένων άμεσα, θα ταξινομήσετε του να είναι ένας πόνος για να κάνει γιατί προφανώς αυτά τα δεδομένα για τα ονόματα μωρών ζει σε κάποια βάση δεδομένων κάπου, και θα ήταν πραγματικά περίπλοκο να πρέπει να το ερώτημα χέρι και να αποφασίσει ακριβώς τι στοιχεία να επιστρέψουν. Με άλλα λόγια, μόνο νοιάζονται για Jennifer Thomas και σε αυτή την περίπτωση, και μόνο νοιάζονται για σε ένα συγκεκριμένο άξονα και όλα αυτού του είδους τα πράγματα. Πώς να πάρει γύρω από αυτό; Για να σκάψει σε αυτό το API λίγο περισσότερο θα σας δείξω ένα άλλο παράδειγμα αυτής της πλατφόρμας η οποία χρησιμοποιεί ένα ελαφρώς διαφορετικό σύνολο δεδομένων. Αυτό το σετ δεδομένων, αντί να είναι τα ονόματα μωρών, είναι πραγματικά ακριβώς το σύνολο εκτύπωση δεδομένων δημοσίευση της Ανοικτής Βιβλιοθήκης, η οποία είναι μια γιγαντιαία πηγή των κειμένων που δημοσιεύονται σε όλα τα τελευταία 100 περίπου χρόνια. Η ιδέα είναι ότι έχουμε αυτό το compository εκατομμύρια και τα εκατομμύρια των κειμένων, το οποίο μπορούμε τώρα να ψάξει για διαφορετικές λέξεις και φράσεις μέσα Εδώ είναι ένα παράδειγμα που διαφέρει λίγο διαφορετικό από το προηγούμενο παράδειγμα Που σας έδειξα, το οποίο έχουμε είναι αυτά τα 3 ερωτήματα αναζήτησης, πόλεμος, ο πόλεμος, και η γαλλική λέξη για τον πόλεμο, η οποία είναι guerre. Και είμαστε ψάχνουν μέσα σε 3 διαφορετικά τμήματα της συνολικής βάσης δεδομένων. Με άλλα λόγια, σε αυτό το πρώτο ερώτημα είμαστε μόνο ψάχνει στις ΗΠΑ, στο δεύτερο μόνο στο Ηνωμένο Βασίλειο, και το τρίτο μόνο από τα έργα που δημοσιεύτηκαν στη Γαλλία. Βλέπουμε κάποια ενδιαφέροντα σχέδια προκύπτουν. Για παράδειγμα, βλέπουμε δεξιά γύρω από εδώ που- ουπς, έκανα θάλασσα στον άξονα λίγο, αλλά μπορείτε να δείτε δεξιά σε αυτήν την περιοχή εδώ γύρω από τον Εμφύλιο Πόλεμο υπάρχει μια μεγάλη ακίδα στην αμερικανική έκδοση αλλά δεν είναι τόσο μεγάλο ακίδα στις άλλες δύο, και αυτό είναι προφανώς επειδή τον Αμερικανικό Εμφύλιο Πόλεμο συνέβαινε σε εκείνο το σημείο. Μπορούμε να δούμε κάποια δροσερή ουσία εκεί, αλλά αυτό που πραγματικά νοιάζονται για το πώς είναι να έχεις αυτά τα δεδομένα. Θα σας μεταφέρει πίσω από τις σκηνές σε αυτό το app σε λίγο. Ένα τακτοποιημένο τέχνασμα είναι εάν εργάζεστε με την τοποθεσία και το είδος της θέλουν να ξέρουν τι συμβαίνει πίσω από τις σκηνές, μπορείτε να ανοίξετε τα εργαλεία ανάπτυξης. Πάω να χρησιμοποιούν τα εργαλεία ανάπτυξης του Chrome, και να πάρει με αυτά μπορείτε να κάνετε τον έλεγχο, στροφή, J, και αυτό θα σας οδηγήσει στην κονσόλα JavaScript. Υπάρχουν μερικές καρτέλες εδώ. Μπορούν όλοι να είναι αρκετά χρήσιμο κάτω από διαφορετικές συνθήκες, αλλά με νοιάζει το δίκτυο καρτέλα αυτή τη στιγμή, και εγώ πραγματικά πρέπει να ανανεώσετε για να πάρει ότι η εργασία. Ω, συγγνώμη. Προτιμά να δώσει ένα τυχαίο παράδειγμα. Εντάξει, θα χρησιμοποιήσουμε αυτό το παράδειγμα, αντί τότε. Η ιδέα είναι ότι υπάρχει αυτό το API εδώ, και μπορείτε να δείτε ακριβώς ποια είναι η API επιστρέφει. Αυτό είναι ό, τι η αίτηση να πάρει πίσω από το API που έχει σταλεί αυτό το αίτημα. Επιτρέψτε μου να μεγεθύνετε λίγο, και μπορούμε να δούμε ουσιαστικά είναι απλώς μια σειρά από βασικά ζεύγη τιμών σε JSON. Με άλλα λόγια, αυτό που έχουμε εδώ HashMap που είναι χαρτογράφηση αξίες. Με άλλα λόγια, είναι χαρτογράφηση χρόνου σε τιμές. Το 1765 ό, τι λέξη που αρχικά αναζητήσατε χρησιμοποιείται 90 φορές από 1 εκατ. ευρώ, οπότε παίρνουμε πίσω αυτό το αποτέλεσμα. Δεν είναι ακριβώς JSON αφού έχουμε αυτό το μικρό κεφαλίδα αποτέλεσμα εδώ, ειδοποίηση, αλλά ότι όλο αυτό το αντικείμενο εδώ είναι απλά μια μεγάλη σταγόνα μεγάλη JSON. Έχουμε εδώ μια σειρά που περιέχει όλη αυτή στοιχείο, και μπορείτε να δείτε ότι η όλη στοιχείο τελειώνει εκεί, και τότε θα έχουμε ένα άλλο μεγάλο στοιχείο που πηγαίνει σε όλη τη διαδρομή μέχρι το τέλος, και ότι τελειώνει εδώ. Έχουμε μια πολύ μεγάλη σειρά με 2 αντικείμενα σε αυτό, και κάθε ένα από αυτά τα αντικείμενα είναι ένα HashMap. Μπορείτε να δείτε σε καθεμία από τις hashmaps έχουμε μια χαρτογράφηση αυτής της τιμής του δείκτη στο 0 και την αξία αυτής της αξίας σε άλλο HashMap, η οποία και πάλι είναι η χαρτογράφηση τιμές του άξονα Χ προς Υ τιμές του άξονα. Μπορείτε να δείτε JSON παίρνει λίγο λίγο περίπλοκη, αλλά σε γενικές γραμμές, Είναι πραγματικά πολύ χρήσιμο, και είναι πολύ εύκολο να αποκτήσετε πρόσβαση σε σύγκριση με άλλες διαφορετικές μορφές της σημειογραφίας. Όσο για το τι είμαστε πραγματικά την αποστολή δεδομένων στο API για να πάρει, Πάω να πάει στο πίσω άκρο λίγο εδώ. Αυτό είναι το μεγάλο αρχείο JavaScript που είναι το χειρισμό των αλληλεπιδράσεων της εφαρμογής web, και γι 'αυτό δεν νοιάζονται για τα περισσότερα από αυτά, αλλά εμείς κάνουμε τη φροντίδα για ορισμένα από αυτά. Για παράδειγμα, εμείς ενδιαφερόμαστε για αυτή τη λειτουργία buildQuery, και η ιδέα αυτής της λειτουργίας είναι ουσιαστικά αυτό που ψάχνει γύρω από τη σελίδα, υπολογίζει τι ο χρήστης θέλει να θέσει υπό αμφισβήτηση, με άλλα λόγια, έλεγχο τα κουτιά όπου έχω εισόδου τους όρους αναζήτησης, τον έλεγχο των διαφόρων Υ και Χ τιμές του άξονα που έχετε επιλέξει και όλο αυτό το είδος του πράγματος, και πρόκειται να φτύσει αυτό το ερώτημα αξία, την οποία μπορεί στη συνέχεια να στείλει μακριά στο API. Αυτό φαίνεται περίπλοκη, και είναι αρκετά περίπλοκη αλλά τι Πάω να κάνουμε-στην πραγματικότητα, κάνω ήδη αυτό, το οποίο είναι μεγάλο- είναι ότι είμαι πρόκειται να πάρει την κονσόλα για να εκτυπώσετε ακριβώς αυτό το ερώτημα αξία ότι είναι εκτός αποστολής για το API. Αυτό είναι πραγματικά εδώ. Λυπούμαστε, αλλά δεν εξάγει πολλά πράγματα. Αλλά αυτό είναι ό, τι μας νοιάζει, αυτό το αντικείμενο εδώ. Αυτό είναι το ερώτημα αντικείμενο. Με άλλα λόγια, αυτό είναι ακριβώς ό, τι η διαδικτυακή εφαρμογή στέλνει στο API, και γι 'αυτό ας ρίξουμε μια ματιά μέσα σε ένα μικρό κομμάτι, και βλέπουμε έχουμε μερικές αξίες εδώ. Βλέπουμε έχουμε αυτό το είδος καταμέτρηση, η οποία είναι περιστατικά ανά εκατομμύριο λέξεις, το οποίο είναι ακριβώς αυτό που έχουμε επιλέξει στον άξονα Υ εδώ. Αυτός είναι όπου αυτό είναι που προέρχονται από. Έχουμε μια τιμή βάσης δεδομένων, πράγμα που σημαίνει ότι υπάρχει κάποια συγκεκριμένη βάση δεδομένων ότι τα στοιχεία αυτά είναι που ζουν σε, και θέλουμε να έχουν πρόσβαση σε αυτά ειδικά σε αντίθεση με τα ονόματα μωρών δεδομένων, για παράδειγμα. Στη συνέχεια έχουμε την τιμή ομάδες, που λέει ότι θέλουμε να αναζητήσετε με το χρόνο, σε αντίθεση με οποιαδήποτε άλλη τιμή του άξονα Χ. Στη συνέχεια, έχουμε μια μέθοδο, η οποία κάποια APIs θα κάνει πολλά πράγματα. Με άλλα λόγια, αυτό το ΑΡΙ μπορεί επίσης να επιστρέψει άλλα είδη δεδομένων, αλλά σε αυτή την περίπτωση, το θέλουμε χαρτογράφηση των Χ τιμές του άξονα Υ σε τιμές του άξονα. Αυτό είναι ό, τι είναι αυτό που λέει να κάνουμε εκεί, και έχουμε αυτή την αναζήτηση σειρά όρια, που περιέχει 2 τιμές. Το πρώτο είναι αυτό που βλέπουμε εδώ, το οποίο είναι το σύνολο των αξιών που περιέχονται σε αυτό το πρώτο μικρό κουτί στην κορυφή. Με άλλα λόγια, θέλουμε να δούμε για τη μάχη λέξη, και θέλουμε να το φιλτράρετε από το αγγλικό κείμενο μέσα αμερικανικής λογοτεχνίας. Έχουμε αυτή τη χώρα, η οποία είναι ΗΠΑ. Έχουμε μια γλώσσα, η οποία είναι η αγγλική, οπότε έχουμε όλα αυτά τα διαφορετικά μέρη ότι τα λέει όλα το API ακριβώς αυτό που θέλουμε. Δεν ξέρουμε ποια είναι τα δεδομένα που έχουμε είναι ακόμα πίσω, αλλά ξέρουμε ότι τα δεδομένα πρόκειται να λάβει μια συγκεκριμένη μορφή. Αυτό το παράδειγμα είναι το είδος της για την περίπλοκη πλευρά, και εσείς δεν θα ήταν αναγκαστικά να χρησιμοποιούν ένα API αυτό το συγκρότημα, αλλά αυτό είναι για να σας δείξει το εύρος και τη δύναμη των APIs τι μπορεί να κάνει. Με άλλα λόγια, χρησιμοποιώντας ένα σχετικά απλό σύστημα στο ερώτημα έχουμε βασικά ένα πλαίσιο εισαγωγής με μερικούς άλλους επιλογείς σε διαφορετικά μέρη. Επιτρέψτε μου να μεγεθύνετε από εδώ. Έχουμε ένα πλαίσιο εισαγωγής με μερικές διαφορετικές επιλογές μεταδεδομένων, και έχουμε άξονα Υ και Χ επιλογές άξονα. Δεν έχουμε στην πραγματικότητα ότι πολλά πεδία, και μπορούμε να δούμε πολύ εύκολα να είμαστε σε θέση να αναζητούν κάποιο είδος του API και να πάρετε πίσω τα δεδομένα και στη συνέχεια να το βάλετε σε αυτό το διάγραμμα, το οποίο στη συνέχεια πρόκειται να το εμφανίσετε σε ένα χρήσιμο τρόπο. Για να δούμε ένα άλλο παράδειγμα που θα μπορούσε να είναι λίγο πιο οικεία σε σας παιδιά θα πάμε να γυρίσει στο Facebook. API του Facebook ονομάζεται η γραφική παράσταση του Facebook, και βασικά τι σημαίνει αυτό είναι το Facebook θεωρεί τον εαυτό της ως αυτή τη μαζική βάση δεδομένων των παρτίδων των διαφόρων τμημάτων που όλα έχουν ορισμένες σχέσεις μεταξύ τους. Με άλλα λόγια, είμαι ένας χρήστης στο Facebook, έτσι έχω ένα προφίλ, και επίσης έχω ορισμένους φίλους, και το καθένα από αυτά έχει ένα προφίλ, και κάθε ένα από τους φίλους μου έχει ένα τοίχωμα, το οποίο έχει διαφορετικά σχόλια σχετικά με αυτό, και κάθε μία από τις εν λόγω παρατηρήσεις έχει συμπαθεί και όλα αυτού του είδους τα πράγματα. Υπάρχει πολλά διαφορετικά μέρη στο Facebook. Είναι ένα εξαιρετικά πολύπλοκο API, και δεν υπάρχουν τόνοι που μπορείτε να κάνετε με αυτό, αλλά στην πραγματικότητα είναι πολύ απλό στη χρήση. Πάω να ξεκινήσει από πρόκειται να graph.facebook.com / billyjanitsch, το οποίο είναι το μοναδικό όνομα του λογαριασμού μου, και το όνομα του λογαριασμού σας θα είναι είτε κάποια λέξη, αν το έχετε επιλέξει, ή μπορεί απλά να είναι μια σειρά από αριθμούς. Τι παίρνουμε πίσω είναι πολύ βασικές πληροφορίες. Βλέπουμε ότι έχω ένα όνομα, το οποίο είναι Μπίλι, ένα επώνυμο, το οποίο είναι Janitsch. Υπάρχει ένα μοναδικό αναγνωριστικό του Facebook που έχω. Μπορείτε να δείτε ότι είμαι αρσενικό και ότι έχω ρύθμιση γλώσσας μου σε βρετανικά αγγλικά. Με άλλα λόγια, βλέπουμε πολύ βασικές πληροφορίες εδώ. Δεν είναι πάρα πολύ, αλλά μας δίνει μια ιδέα για το τι είναι εκεί. Μπορούμε να κάνουμε το ίδιο πράγμα για τον David Malan, για παράδειγμα. Νομίζω ότι το όνομά του είναι dmalan. Βλέπουμε David Malan διαθέτει ένα μοναδικό αναγνωριστικό. Έχει ένα επώνυμο, όνομα, πατρώνυμο, επώνυμο. Βλέπουμε επίσης ότι είναι αρσενικό και έχει σύνολο γλώσσα του στις ΗΠΑ Αγγλικά. Με άλλα λόγια, βλέπουμε πολύ βασικές πληροφορίες εδώ. Τώρα, τι θα συμβεί αν προσπαθήσουμε να δείτε κάτι άλλο; Ας πούμε ότι είμαι ενδιαφέρονται για ό, τι έχει ο David Malan άρεσε στο Facebook. Μπορώ να κάνω / συμπαθεί. Τώρα έχουμε τρέξει σε ένα πρόβλημα. Έχουμε κάποιο είδος του λάθους που λέει ένα διακριτικό πρόσβασης είναι υποχρεωμένος να ζητήσει από αυτόν τον πόρο. Αλλά αν νομίζετε γι 'αυτό, που κάνει πραγματικά την αίσθηση, επειδή θα ήταν παράξενο αν μπορούσαν να έχουν πρόσβαση σε κάθε μέρος μόνο της βάσης δεδομένων του Facebook μόνο από κάποια απλή API, έτσι δεν είναι; Με άλλα λόγια, κατά πάσα πιθανότητα τις πληροφορίες σας δεν μπορεί να έχει πρόσβαση οποιοσδήποτε που θέλει. Αυτό το σφάλμα είναι ακριβώς τι σημαίνει αυτό. Κάποιοι απαιτούν ορισμένες APIs δικαιώματα προκειμένου να έχουν πρόσβαση στα δεδομένα τους. Και ακόμα πιο προηγμένη API, όπως το Facebook ένα, θα απαιτήσει ορισμένα δικαιώματα για να κάνει ορισμένα πράγματα. Μπορώ να δω αυτές τις βασικές πληροφορίες σχετικά με τον David Malan. Βλέπω ότι αυτός είναι άνδρες και ότι ζει στις ΗΠΑ, αλλά δεν μπορώ να δω τίποτα πέρα ​​από αυτό. Για να πάρετε γύρω από αυτό για τώρα, το Facebook έχει αυτό το ωραίο εργαλείο που είναι η γραφική παράσταση API εξερευνητής, και η ιδέα του ότι είναι ότι μπορείτε να ταξινομήσετε του συνθέτουν δικαιώματα για τον εαυτό σας με βάση το δικό σας λογαριασμό και στη συνέχεια δείτε πράγματα που ειδικά στο λογαριασμό σας μπορούν να δουν. Για παράδειγμα, αν το κάνω graph.facebook.com/billyjanitsch/likes- κραυγών, υποθέτω ότι πρέπει να επανενεργοποιήσουν το κουπόνι μου εδώ. Εντάξει. Αν το κάνουμε αυτό και πάλι, μεγάλη, τώρα βλέπω ότι παίρνω πίσω αυτό το αντικείμενο η οποία λέει ότι μου αρέσει noodles πισίνα, οι οποίες είναι στην κατηγορία Παιχνίδια και παιχνίδια. Μου αρέσει θαλάσσιους ίππους, που είναι στην κατηγορία των ζώων. Αυτά είναι πραγματικά συμπαθεί μου στο Facebook. Είναι το είδος ενοχλητικό. Αλλά μπορούμε να δούμε αυτά τα δεδομένα όλοι επέστρεψαν στην JSON. Είναι αρκετά ευανάγνωστο. Με άλλα λόγια, έχουμε αυτό χαρτογράφηση των δεδομένων σε κάποιο είδος ενός πίνακα, και κάθε στοιχείο του πίνακα είναι ένας HashMap οποία χαρτογραφεί το όνομα του, όπως και η κατηγορία του ομοειδούς. Κάθε όπως έχει ένα μοναδικό αναγνωριστικό. Υπάρχουν όλα τα είδη των διαφορετικών πραγμάτων των δεδομένων που μπορούμε να πάρουμε, και αν σας ενδιαφέρει χρησιμοποιώντας το Facebook API για CS50 τελικό σχέδιο ή για κάτι τέτοιο είναι πραγματικά αρκετά εφικτό. Βασικά πώς μπορείτε να πάρετε γύρω από το θέμα ταυτότητας είναι το Facebook χρησιμοποιεί ένα σύστημα που ονομάζεται OAuth, ή ανοιχτό έλεγχο ταυτότητας, και δεν θέλω να μπει σε αυτό τώρα, διότι OAuth ή το διαφορετικό τύπο της ταυτότητας τείνει να ποικίλλουν σε μεγάλο βαθμό μεταξύ των διαφόρων APIs, έτσι θα μπορούσα να περάσω ένα μεγάλο χρονικό διάστημα που πηγαίνει πέρα ​​από κάθε μία, αλλά είναι πραγματικά αρκετά αυτονόητα. Αν η Google Facebook API είναι πολύ ευανάγνωστη. Υπάρχει μια ολόκληρη spec. Για παράδειγμα, αυτή είναι η τεκμηρίωση για το Facebook API, και μπορείτε να δείτε ότι είμαι στη σελίδα χρήστη, ώστε να μπορώ να μάθετε τα πάντα για τα διαφορετικά είδη των πραγμάτων που είναι διαθέσιμα για να πάρει όσον αφορά τα δεδομένα καθώς επίσης και τα διάφορα δικαιώματα που χρειάζονται για να έχουν πρόσβαση σε αυτά. Όπως είδαμε, δεν χρειαζόμαστε δικαιώματα πρόσβασης το όνομα ή το φύλο, αλλά πέρα ​​από αυτό χρειαζόμαστε δικαιώματα για τα περισσότερα πράγματα. Αυτή η σελίδα, ή μάλλον, αυτή η ιστοσελίδα θα σας πει επίσης πώς να πάρει μια συμβολική να είναι σε θέση να τον εαυτό σας ταυτότητας. Τα περισσότερα συστήματα πιστοποίησης χρησιμοποιούν κάποιο είδος του διακριτικού όπου μπορείτε να πάρετε αυτό το μοναδικό τιμή, η οποία είναι μια πολύ μεγάλη και τυχαία σειρά, και με αυτόν τον τρόπο μπορούν να συνδέσει το αίτημα ότι έχετε κάνει μαζί σας. Με άλλα λόγια, ξέρουν ότι δεν κάνετε τίποτα ύποπτο με τα δεδομένα τους. Ξέρουν ακριβώς τι παίρνετε. Γνωρίζουν επίσης ότι έχετε άδεια για να δείτε τις πληροφορίες αυτές. Αν έχετε κάνει ένα Facebook app και app σας έχει συγκεκριμένους χρήστες, και οι χρήστες έχουν προέβλεπε ότι app για να αποκτήσετε πρόσβαση σε ορισμένα μέρη του προφίλ τους, τότε ό, τι κλειδί API ή συμβολική ότι η εφαρμογή χρησιμοποιεί θα είναι σε θέση να έχουν πρόσβαση στα δεδομένα για τους χρήστες. Αυτό μπορεί να ακούγεται περίπλοκο, αλλά δεν είναι πάρα πολύ κακό, και αν θέλετε να χρησιμοποιήσετε το Facebook θα σύστηνα ιδιαίτερα ότι εξετάσει παίζοντας γύρω με το API τους. Είναι πολύ δροσερό, και μπορείτε να κάνετε πολλά διαφορετικά πράγματα με αυτό. Εάν ο χρήστης σας παραχωρεί αυτά τα δικαιώματα, μπορείτε να πάτε ακόμη και πίσω στο API και να πω θέλω πραγματικά να δημοσιεύσετε στον τοίχο του χρήστη, ή θέλω να τα δημοσιεύσετε μια φωτογραφία, και αυτός είναι ο λόγος για τις ζωοτροφές ειδήσεις σας, θα έχετε μερικές φορές τα ενοχλητικά πράγματα λέγοντας φίλος σας έχει παρακολουθήσει αυτό το βίντεο σε κάποια ιστοσελίδα περίεργο ή κάτι τέτοιο. Αυτό συμβαίνει γιατί η εφαρμογή έχει χορηγηθεί πρόσβαση για να δημοσιεύσετε στον τοίχο του ατόμου. Η συνολική ιδέα, το Facebook API είναι αρκετά περίπλοκη, αλλά και πολύ χρήσιμο. Σίγουρα αξίζει τον έλεγχο έξω εάν είστε ακόμη ψάχνει για ένα τελικό σχέδιο. Μια άλλη σειρά από APIs που Πάω να πάει πέρα ​​είναι CS50 APIs. Επιτρέψτε μου να μεγεθύνετε εδώ. CS50 έχει πραγματικά βάλει μαζί μια ολόκληρη σειρά από APIs που μπορείτε να χρησιμοποιήσετε για ένα τελικό σχέδιο ή απλώς για κάτι που θέλετε να κάνετε. Και είναι ως επί το πλείστον σχετίζονται με το Χάρβαρντ, και διαφέρουν από το μενού Huds, για παράδειγμα, σε αυτό το Χάρβαρντ Εκδηλώσεις API, το οποίο θα σας επιτρέψει να αποκτήσετε πρόσβαση σε μια λίστα διαφορετικά γεγονότα που βρίσκονται σε εξέλιξη στο Χάρβαρντ και ότι το είδος του πράγματος. Και έτσι μπορούμε να κάνετε κλικ σε κάθε ένα από αυτά και να πάρετε ένα spec για αυτό, που θα είστε σε θέση να βρείτε για κάθε API, και η ιδέα είναι αυτό σας επιτρέπει να γνωρίζετε, Α, συγκεκριμένα τι πρέπει να ζητήσει από το API και πώς να το ζητήσει. Με άλλα λόγια, αν θέλω όλα τα γεγονότα που συμβαίνουν αύριο τότε έχω να του δώσει προφανώς αυτή την ημερομηνία που θέλω σε μια συγκεκριμένη μορφή, και Β, θα μου πείτε ακριβώς τι πρόκειται να δώσει πίσω σε μένα. Θα πω ότι είμαι πρόκειται να σας επιστρέψει το αντικείμενο JSON, ή όπως μπορείτε να δείτε, υπάρχουν διαφορετικές μορφές. Μπορείτε επίσης να επαναφέρετε τα δεδομένα ως CSV, για παράδειγμα. Αλλά ξέρετε πώς ακριβώς ότι τα δεδομένα πρόκειται να δούμε πότε θα το πάρει πίσω έτσι μπορείτε να περιμένετε να κάνει ορισμένα πράγματα με αυτό. Μπορούμε να μετακινηθείτε προς τα κάτω και να δούμε, για παράδειγμα, αν θέλουμε να θέσει υπό αμφισβήτηση το API για να πάρει ένα ημερολόγιο, τότε μπορούμε να χρησιμοποιήσουμε αυτό το συγκεκριμένο URL και να της δώσει ορισμένες παραμέτρους που πρόκειται να είναι τα στοιχεία που θέλουμε ακριβώς. Και επίσης, αν θέλουμε τα δεδομένα πίσω σε μια συγκεκριμένη μορφή, τότε μπορούμε να ζητήσουμε να εξάγει τα δεδομένα σε ένα αρχείο CSV, και αυτό είναι ακριβώς μια άλλη παράμετρος που περνά είμαστε στο API. Πολλά δροσερά πράγματα να κάνουμε εκεί. Θα ήθελα σίγουρα προτείνουμε να ελέγξει έξω το CS50 APIs. Πάω να εξετάσουμε αυτό το API Τροφίμων Χάρβαρντ, ιδίως για λίγο. Ένα πράγμα που έχω πραγματικά έχουν σχεδιαστεί είναι αυτό του Χάρβαρντ Noms ιστοσελίδα, που χρησιμοποιεί το API CS50 Τροφίμων για την ανάκτηση του Huds μενού για την ημέρα. Και για τους ανθρώπους σχολείο επέκταση, Huds είναι η υπηρεσία δείπνο στο Χάρβαρντ. Αυτό που παίρνετε είναι αυτό που σελίδα περιέχει όλα τα γεύματα της ημέρας, έτσι βλέπουμε το μεσημεριανό γεύμα. Έχουμε μερικές διαφορετικές κατηγορίες. Έχουμε το φασόλι και ολόκληρο σταθμό σιτηρών. Έχουμε το καστανό ρύζι σταθμό. Μπορούμε να δούμε για brunch έχουμε αυτά τα λίγα είδη διατροφής. Αν κάνουμε κλικ πάνω τους, τότε έχουμε τις διατροφικές πληροφορίες. Βλέπετε αυτή είναι η διατροφικές πληροφορίες για τα γκρέιπ φρουτ, σε περίπτωση που ήσασταν αναρωτιούνται. Και έτσι πάλι, θα πάμε για να κοιτάξει αδιάκριτα στο πίσω άκρο εδώ και λίγο και να δούμε τι ακριβώς κάνει για να πάρει αυτά τα δεδομένα. Και αυτό αποδεικνύεται στην πραγματικότητα να μην είναι πολύ περίπλοκο καθόλου. Αυτό το αρχείο μοιάζει λίγο βρώμικο, αλλά να έχετε κατά νου ότι αυτό το χειρίζεται ολόκληρο τον ιστότοπο, και αν μετακινηθείτε προς τα κάτω βλέπουμε αυτήν την αλλαγή των δεδομένων λειτουργίας. Τώρα, ακριβώς για να είναι σαφής, αυτό είναι γραμμένο σε CoffeeScript, η οποία είναι μια γλώσσα που ίσως δεν έχετε δει πριν. Αλλά είναι αρκετά ευανάγνωστη, γι 'αυτό θα περπατήσετε μέσα από αυτό σαν να ήταν ψευδοκώδικα. Αλλαγή ημερομηνίας είναι μια λειτουργία που πρόκειται να λάβει αυτήν την τιμή την ημερομηνία, και είναι, επίσης, πρόκειται να λάβει μια πρώτη, η οποία δεν μας νοιάζει για τόσο πολύ. Αλλά το σημαντικό πράγμα είναι ότι έχει την ημερομηνία αυτή, και η ημερομηνία αυτή είναι η μέρα που θέλουμε να ζητήσει όλα τα στοιχεία για τα τρόφιμα. Και τότε θα δείτε έχουμε λίγη σύνταξη εδώ, η οποία είναι βασικά parsing την ημερομηνία αυτή σε αναγνώσιμη μορφή. Με άλλα λόγια, η API απαιτεί την ημερομηνία σε μια συγκεκριμένη μορφή. Δεν μπορούμε να πούμε ακριβώς 16 του Νοεμβρίου του 2012 μ.Χ.. Δεν θα ξέρουν τι να κάνουν με αυτό. Θέλει την ημερομηνία σε μια συγκεκριμένη μορφή. Το μόνο που κάνουμε εδώ είναι να δίνει ακριβώς αυτή τη μορφή, η οποία είναι μια χρόνια τιμή και τότε ένα ενωτικό, μια αξία μήνες, άλλο ενωτικό και η αξία ημερομηνία. Και εμείς επίσης να λέμε ότι θέλουμε τα δεδομένα για να εξαχθούν σε JSON. Τώρα σημειώνουμε αυτό το αίτημα AJAX, και όπως ανέφερα προηγουμένως, jQuery έχει αυτό το σούπερ χρήσιμη λειτουργία AJAX η οποία το μόνο που χρειάζεται να κάνετε είναι να καθορίσετε μερικές παραμέτρους κάτω εδώ, και θα σας δώσει πίσω ακριβώς ό, τι θέλετε. Είμαστε αυτό λέει ότι η διεύθυνση URL που θέλουμε να πάμε να είναι αυτό CS50 API Τροφίμων, που πήραμε από το spec. Εμείς λέμε ότι θέλουμε τα δεδομένα JSON και ότι θα πάμε να του δώσει αυτά τα στοιχεία που έχουμε καθορίσει εδώ. Αυτή είναι η ημέρα που θέλουμε τα είδη διατροφής για. Και τότε το μόνο που έχουμε να κάνουμε είναι να καθορίσει κάποιο είδος της λειτουργίας επιτυχία, που είναι βασικά το τι συμβαίνει όταν η API επιστρέφει ότι τα δεδομένα. Με άλλα λόγια, έχουμε πακετάρει όλες τις παραμέτρους που θέλουμε, η οποία στην περίπτωση αυτή είναι η μέρα που το θέλουμε και το γεγονός ότι θέλουμε σε JSON, και στείλαμε μακριά με το API, έτσι και τώρα το API που λέει, εντάξει, εδώ είναι τα δεδομένα σας, το πήρα πίσω για σας. Έχουμε τη συνάρτηση επιτυχία, που σημαίνει, δεδομένου ότι το ΑΡΙ επιτυχώς επιστρέφει κάποια δεδομένα, τι κάνουμε με αυτό; Και αποδεικνύεται ότι το μόνο που κάνουμε είναι να καλέσετε αυτή η λειτουργία μενού ενημέρωσης με ό, τι η API έχει επιστρέψει, έτσι μπορούμε να ψάξουμε για ότι και να δούμε ότι όλα τα κάνουμε χρησιμοποιεί μια δέσμη των νέων σύνταξη εδώ να ενημερώσετε τον κώδικα HTML και τοποθετήστε αυτά τα νέα στοιχεία. Τι είναι αυτό επιτρέπει έχουμε αυτά τα βέλη και στις δύο πλευρές, και μπορούμε να κάνετε κλικ, και τώρα ψάχνουμε τα δεδομένα για την επόμενη μέρα και πάλι για την επόμενη μέρα, και κάθε φορά που την ενημέρωση ότι η αξία ημερομηνία και η αναζήτηση της API, να πάρει πίσω κάποια δεδομένα και τη θέση της στο χώρο. Και πάλι, μπορείτε να δείτε, σούπερ, σούπερ χρήσιμος. Αυτό το app μου πήρε μερικές ώρες για να χαράξει μαζί, και έχω λίγο περισσότερη εμπειρία, προφανώς, αλλά CS50 τελικό έργο σας μπορεί να κοιτάξει κάτι πάρα πολύ σαν αυτό. APIs είναι εξαιρετικά ισχυρό για το μέγεθος της προσπάθειας που παίρνουν. Το τελευταίο πράγμα Πάω να πάει πέρα ​​από μερικές είναι πιο ευρέως APIs. Δεν θα πάρει ως τώρα σε αυτά όσον αφορά το τι κάνουν συγκεκριμένα, αλλά εγώ θα σας δώσω μια ιδέα του τι υπάρχει εκεί έξω. 2 πολύ χρήσιμα αυτά, αν σας ενδιαφέρει η ανάλυση των δεδομένων ή οπτικοποίηση ή κάτι τέτοιο, είναι Freebase και Wikipedia. Wikipedia-προφανώς όλοι γνωρίζετε-είναι μια δωρεάν online εγκυκλοπαίδεια, και έχει πραγματικά ένα API, οπότε αν θέλετε, για παράδειγμα, πάρετε όλα τα κείμενα και τα άρθρα για το χταπόδι μπορείτε πολύ εύκολα να το κάνει αυτό. Απλά να πω hey, Wikipedia API, θα ήθελα τα δεδομένα που επιστρέφονται ως αυτό, και εγώ θα το ήθελα σε αυτή τη μορφή, και το άρθρο θα ήθελα είναι το χταπόδι, και πολύ γρήγορα θα σας δώσει πίσω τις εν λόγω πληροφορίες. Αυτό μπορεί να είναι πραγματικά χρήσιμο εάν θέλετε να κάνετε κάποιο είδος του site αυτή είναι η καλύτερη για την Wikipedia θεατή ή κάτι τέτοιο. Freebase είναι είδος παρόμοιο, αν και είναι λίγο δύσκολο όσο το API. Freebase Wikipedia είναι σαν το ότι είναι μια ηλεκτρονική εγκυκλοπαίδεια το οποίο περιέχει πάρα πολλά διαφορετικά στοιχεία σχετικά με όλα τα είδη των διαφόρων θεμάτων, αλλά είναι αποθηκευμένο σε μια σχεσιακή βάση δεδομένων, η οποία είναι ελαφρώς διαφορετική από την Wikipedia. Η Wikipedia έχει άρθρα και άρθρα του που συνδέεται με άλλα είδη, αλλά για το μεγαλύτερο μέρος, αν θέλετε τα δεδομένα για το χταπόδι, πηγαίνετε με το άρθρο χταπόδι, να πάρει αυτά τα δεδομένα, και έχετε μια δέσμη των κειμένων για χταπόδια, έτσι ώστε να είναι μεγάλη. Freebase εργάζεται σε μια ελαφρώς πιο περίπλοκο τρόπο από το ότι οτιδήποτε έχει σχέση με ένα άλλο. Με άλλα λόγια, αν ψάχνετε για το χταπόδι τότε έχει μια δέσμη των κατηγοριών που συνδέονται με αυτό. Για παράδειγμα, είναι ένα ζώο, ζει κάτω από το νερό, έχει μία ορισμένη θερμοκρασία του σώματος. Δεν ξέρω. Και όλες αυτές οι κατηγορίες είναι συνδέσεις με άλλα μέρη όπου μπορείτε να πάτε για να δείτε τα πράγματα με την ίδια κατηγορία. Με άλλα λόγια, το χταπόδι σύνολο δεδομένων θα περιέχει ένα σύνδεσμο με τα δεδομένα που καθορίζονται για όλα τα ζώα, και ότι δεν θα επιτρέψτε μου να μετακινηθείτε στη βάση δεδομένων πολύ γρήγορα. Αυτό μπορεί να είναι πολύ χρήσιμο αν κάνεις κάτι σαν συγκρίσεις. Με άλλα λόγια, δίνεται ένα συγκεκριμένο πράγμα, που θέλετε να δείτε τι άλλο είναι σχετικές και να δούμε τι άλλο δεν είναι σχετικές με. Αυτό το είδος του πράγματος. Μπορεί να είναι χρήσιμη σε έναν αριθμό τρόπων. Αν ψάχνετε για περισσότερο από μια πρόκληση και να είναι σε θέση να κάνει κάποια πράγματα πιο πολύπλοκα Θα ήθελα να εξετάσει τη λήψη μια ματιά στο Freebase API. Αλλά σε μεγάλο βαθμό, η Wikipedia είναι μια πολύ απλή θέση για να πάει όσο το να πάρει πληροφορίες. Ένα άλλο σημείο που θα εξετάσουμε είναι Last.fm, και είμαι πραγματικά πρόκειται να πάει στην ιστοσελίδα σε περίπτωση που μερικοί άνθρωποι δεν είναι εξοικειωμένοι, αλλά Last.fm είναι βασικά μια μουσική γούστα και τις συστάσεις ιστοσελίδα. Μπορείτε να κάνετε ένα λογαριασμό. Μπορείτε να ξεκινήσετε τη μεταφόρτωση μουσικής από συσκευή αναπαραγωγής μουσικής σας στο δικτυακό τόπο, και ουσιαστικά θα αρχίσει να σας δίνει συστάσεις μουσικής με βάση αυτά που ακούτε. Για παράδειγμα, αν πάτε στο προφίλ σας σελίδα, αυτό είναι δικό μου- μπορείτε να δείτε έχετε μια λίστα των πρόσφατα ακούσει κομμάτια. Μπορείτε να δείτε τη συνολική αγαπημένους καλλιτέχνες, όλα αυτού του είδους τα πράγματα, και πάλι, υπάρχει μια μεγάλη API πίσω Last.fm,  και μπορείτε να το χρησιμοποιήσετε για να κάνετε πάρα πολλά πραγματικά δροσερό πράγματα. Για παράδειγμα, θα πάω στη σελίδα ενός φίλου που έχει αυτό το Last.fm εργαλεία δικτυακού τόπου. Αυτό είναι στην πραγματικότητα μια άλλη πλατφόρμα που είναι χτισμένο στην Last.fm API, και κάνει μια σειρά από πολύ ενδιαφέροντα πράγματα. Αν μπορώ να συνδεθώ με το όνομα χρήστη μου, για παράδειγμα, Μπορώ να ζητήσω να δημιουργήσει ένα σύννεφο tag, για παράδειγμα, και τι που πρόκειται να κάνουμε είναι να μου δώσει πίσω την εικόνα της όλα τα διαφορετικά είδη και αυτό το είδος των πράγμα που μου αρέσει να ακούσετε. Πώς το κάνει αυτό; Πολύ βασικά αυτό λέει στο Last.fm API εδώ είναι αυτός ο χρήστης. Θα ήθελα να μάθω το είδος της κάθε τραγούδι που έχω ακούσει ποτέ, και μπορείτε να το κάνετε αυτό κάνοντας μια πολύ απλή κλήση AJAX στο Last.fm API. Θα πάρετε πίσω μια μεγάλη λίστα, τότε προφανώς και κάποια άλλα πράγματα γίνεται να το μετατρέψει σε ένα σύννεφο λέξη, αλλά μπορείτε να δείτε τη συνολική Είναι πολύ εύκολο να έχουν πρόσβαση και πολύ εύκολο στη χρήση. Πραγματικά ωραίο για μια σειρά από πράγματα. Νομίζω ότι είναι για όλα που θα πω συνολικά. Ένα τελευταίο πράγμα που θα αναφέρω σχετικά με τα API σε γενικές γραμμές είναι ότι Μερικές φορές θα τρέξει σε κάτι που ονομάζεται ποσοστό περιορισμό, και η ιδέα του περιορισμού της ταχύτητας είναι που δεν θέλουν να κάνουν κατάχρηση APIs. Με άλλα λόγια, είναι πραγματικά ωραίο ότι πολλές από αυτές τις ιστοσελίδες έχουν APIs ότι μπορείτε να πάτε και να χρησιμοποιήσετε δωρεάν. Ωστόσο, αν θέλετε να κάνετε τα εκατομμύρια ή δισεκατομμύρια των αιτήσεων ανά ημέρα, Για παράδειγμα, αν είστε κολλημένοι σε ένα άπειρο βρόχο που είναι απείρως επερώτηση κάποιο είδος της API και να πάρει πίσω ένα τεράστιο ποσό των δεδομένων, Προφανώς αυτό δεν είναι καλό, έτσι ώστε ό, τι πολλά APIs κάνει είναι να περιορίζει το ποσοστό αυτό το χαρακτηριστικό που λέει ότι μπορεί να κάνει μόνο 1.000 αιτήσεις ανά ημέρα ανά διεύθυνση IP ή κάτι τέτοιο. Και αν κάνετε πολλές δοκιμές και αυτό το είδος του πράγματος, Μερικές φορές θα τρέξει σε αυτό, και ξαφνικά θα σας κλείσει και να πω όχι, δεν είμαι δίνοντάς σας οποιαδήποτε άλλα δεδομένα. Τι θέλετε να κάνετε είναι να παίξετε με τους κανόνες. Θέλετε να βεβαιωθείτε ότι έχετε διαβάσει το API spec προσεκτικά. Αν έχει ορισμένους κανόνες που συνδέονται με αυτό, όπως μπορείτε να κάνετε μόνο X ερωτήματα ανά ημέρα ή μπορείτε να έχετε πρόσβαση μόνο ένα μέρος της βάσης δεδομένων ορισμένες φορές ή κάτι τέτοιο θέλετε να βεβαιωθείτε ότι έχετε κολλήσει με αυτό. Όσο παίζετε σε αυτούς τους κανόνες θα έχετε πιθανώς μια πολύ ωραία στιγμή χρησιμοποιώντας APIs. Συνολικό πακέτο σας είναι APIs είναι πραγματικά, πραγματικά χρήσιμο. Υπάρχει ένα API για σχεδόν κάθε μεγάλη διαδικτυακή υπηρεσία εκεί έξω. Λίγο πολύ κάθε μέρος του Google Tools Suite, το Google Maps, Google Earth, GMail, Google Calendar, όλα αυτά τα πράγματα έχουν APIs. Μπορείτε να τα χρησιμοποιήσετε για να πάρετε τόσο τα δεδομένα από το διακομιστή και να στείλει δεδομένα στον server. Με άλλα λόγια, αν ήθελε να κάνει μια εφαρμογή ημερολογίου που μπορεί να ενημερώσει Google Calendar κάποιου, υπάρχει ένα API για αυτό. Αν θέλετε να κάνετε κάτι που θα σας πω, όπου η τοποθεσία του είναι συγκεκριμένη διεύθυνση μπορείτε να χρησιμοποιήσετε το Google Maps API για αυτό. APIs είναι φανταστικά χρήσιμο, και είναι παντού. Αν σας ενδιαφέρει σε κάποιο είδος της ιδέας, υπάρχει πιθανώς ένα σχετικό API που μπορείτε να χρησιμοποιήσετε για να πάρετε μια πολλά δεδομένα πολύ γρήγορα και πολύ απλά. Αν είστε ακόμη ψάχνει για ένα έργο ή αν απλά θέλετε να παίξετε γύρω με κάτι σε γενικές γραμμές, APIs είναι σίγουρα αξίζει να κάνει. Ευχαριστώ, και είμαι ευτυχής να απαντήσει σε οποιεσδήποτε ερωτήσεις που μπορείτε να έχετε παιδιά. Εντάξει, ευχαριστώ πολύ. [CS50.TV]