[Powered by Google Translate] [Seminar] [Pendahuluan Programmer ke API] [Billy Janitsch] [Harvard University] [Tommy MacWilliam] [Ini adalah CS50.] [CS50.TV] Hi, semuanya, aku Billy, dan hari ini aku akan berbicara tentang API, atau aplikasi antarmuka pemrograman, khususnya dalam konteks CS50 proyek final dan hal semacam itu. Secara umum apa API? Dalam istilah yang sangat luas, itu semacam orang tengah yang memungkinkan 2 buah perangkat lunak untuk berkomunikasi satu sama lain. Itu semacam definisi yang sangat luas dan tidak relevan untuk apa yang kita sedang melihat. Apa yang kita inginkan adalah semacam jalan tengah yang berguna untuk berkomunikasi dengan semacam database di suatu tempat. Berikut tabel, dan pada dasarnya idenya adalah bahwa kita aplikasi, dan kami ingin mendapatkan data dari database, tapi kami tidak ingin query database secara langsung. Sebaliknya kita ingin pergi melalui semacam ini orang tengah, API. Gagasan di balik itu adalah nomor 2 dan 3 pada tabel keduanya akan menjadi sangat rumit dan berantakan. Dengan kata lain, saat ini API query database, itu mungkin akan menggunakan tabel SQL dan semua hal-hal seperti, dan kami telah belajar sedikit tentang hal itu di CS50, tapi secara keseluruhan, Anda telah melihat bahwa itu sedikit sakit. Itu akan sangat, sangat rumit dan berantakan, terutama ketika Anda membuat kompleks query dan hal semacam itu. Apa yang kita inginkan adalah semacam cara yang berguna dan sederhana untuk mendapatkan data itu, dan itulah ide di balik angka 1 dan 4 pada tabel. Dengan kata lain, kita ingin cara yang sangat sederhana untuk memberitahu API untuk mendapatkan apa yang bagi kita dan cara yang sangat sederhana untuk mendapatkan data kembali. Ada satu cara utama bahwa data yang biasanya dikirim dan diterima, yaitu JSON, atau Notasi JavaScript Object. Yang dapat bervariasi sedikit sejauh bagaimana Anda mengirim permintaan ke API. Dengan kata lain, jika Anda ingin beberapa sejumlah data, bagaimana Anda memberitahu API untuk mendapatkan data yang dapat bervariasi sedikit. Biasanya melibatkan membuat semacam permintaan jaringan. Dengan kata lain, mengakses URL semacam itu akan memberitahu API apa yang Anda inginkan, tetapi data hampir selalu dikirim kembali, dengan kata lain, nomor 4 di JSON. Apa itu JSON tepatnya? Seperti yang saya katakan, JavaScript Object Notation. Ini pada dasarnya standar universal untuk transmisi dan menerima data. Idenya adalah bahwa Anda memiliki 3 kategori hal. Anda memiliki array, hashmaps, dan primitif. Array dan hashmaps Anda telah melihat sedikit di CS50, tapi kau semacam mendapatkan rasa yang sangat ketat dari apa yang mereka. Dengan kata lain, dengan array Anda tahu bahwa mereka ketik terikat, sehingga Anda hanya memiliki satu jenis tipe yang berlangsung sepanjang seluruh array. JSON jauh lebih toleran dengan hal semacam itu. Ide dasarnya adalah Anda membangun obyek ini, yang dapat terdiri dari salah satu dari 3 hal dan dapat terdiri dari beberapa orang mereka, dan mereka dapat bersarang. Berikut ini semacam contoh JSON, yang ini kurung keriting sini mewakili hashmap Anda, dan hashmap pada dasarnya adalah sebuah pemetaan dari beberapa jenis kunci untuk beberapa jenis nilai. Anda akan melihat di sini bahwa kita memiliki kunci properti, dan itu pemetaan ke array, yang ini semuanya. Kita melihat unsur lain hashmap, yang ini isAwesome kunci, yang memetakan ke nilai primitif yang benar, dengan kata lain, boolean. Primitif dapat menjadi string. Mereka bisa menjadi bilangan bulat. Mereka bisa menjadi bools, sesuatu seperti itu. Dan Anda melihat isi dari array ini bahwa sifat poin untuk memiliki 2 string di dalamnya, serupa diri dan indah. Mereka adalah 2 sifat JSON, dan kita melihat bahwa JSON is awesome. Untuk melihat yang sedikit lebih dekat aku akan membangun contoh yang lebih kompleks JSON sini. Mari kita mulai dengan sebuah array, misalnya, hanya sebuah array kosong. Tapi itu semacam membosankan, jadi kita akan mengisinya sedikit, dan seperti saya katakan, array di JSON adalah ketik terikat, sehingga kita juga bisa memiliki string di sini, yang hi, dan itulah unsur lain dari array. Dan juga, kita bisa menambahkan hashmapping di sini, yang akan memiliki pemetaan beberapa. Ini akan memiliki pemetaan dari nama ke Billy string. Kami memiliki pemetaan dari nama ke Billy, dan kami memiliki pemetaan favorit warna biru. Itu pada dasarnya adalah contoh yang baik dari JSON. Ini semacam masuk ke-ups, perlu ada koma-semua bagian yang berbeda itu. Sekali lagi, itu bukan tipe terikat sama sekali, sehingga Anda dapat memiliki jenis jenis dalam apa pun yang Anda inginkan, dan idenya adalah itu serupa diri. Dengan kata lain, ini di sini adalah objek JSON, seperti semua ini, karena hanya ini, sehingga Anda dapat memiliki primitif menjadi obyek, array menjadi objek atau hashmap yang menjadi obyek. Seperti yang Anda bisa lihat jenis, JSON adalah benar-benar berguna dalam bahwa hal itu sangat serbaguna. Anda dapat memiliki data mungkin bahwa Anda bisa membayangkan disimpan dalam JSON. Itu membuat bahasa yang benar-benar bagus untuk digunakan dengan API karena itu cukup banyak berarti bahwa apa pun data yang Anda inginkan ada akan ada beberapa cara untuk mendapatkannya kembali pada JSON. Beberapa sifat yang membuat JSON sangat baik untuk hal semacam ini. Seperti yang Anda lihat, dibandingkan dengan banyak hal yang Anda telah bekerja dengan di CS50 itu relatif sangat mudah dibaca dan juga sangat mudah untuk menulis. Anda dapat indent it out jika Anda ingin, seperti yang saya lakukan dalam contoh itu, yang memberi Anda versi, yang cukup bagus bahwa Anda dapat melihat dengan sangat baik. Tapi selain itu, itu juga mudah untuk membaca dan menulis untuk sebuah komputer. Dengan kata lain, sangat mudah untuk mengurai dan mudah untuk mengkodekan, yang berarti bahwa itu cukup cepat sejauh membaca data yang bersangkutan, dan JSON dapat dihasilkan benar-benar cepat. Hal ini juga sangat mudah untuk mengakses bagian yang berbeda dari JSON dan hal semacam itu. Itu bagus, dan lebih jauh lagi, fakta bahwa itu serupa diri, dengan kata lain, kenyataan bahwa Anda dapat memiliki JSON dalam JSON dalam JSON benar-benar baik untuk menyimpan data. Bagian lain yang umumnya benar-benar berguna dalam bekerja dengan API adalah jQuery. Anda telah belajar sedikit JavaScript, yang merupakan cara yang baik untuk memanipulasi HTML dan CSS dalam sebuah website. Tapi itu bisa jenis menjadi sakit untuk kode dalam JavaScript polos, terutama karena JavaScript adalah benar-benar verbose bahasa. Anda harus belajar banyak sintaks, dan hanya untuk melakukan hal-hal yang sangat sederhana dibutuhkan banyak kode, sehingga jQuery adalah library untuk JavaScript. Dengan kata lain, itu file JavaScript yang dapat memuat dan kemudian menggunakan fungsi jQuery untuk melakukan hal-hal tertentu. Dan jQuery pada dasarnya membuat hidup Anda jauh lebih mudah. Ini menyederhanakan apa yang akan mengambil ratusan baris dalam JavaScript ke beberapa baris di jQuery. Ini sangat berguna jika Anda menggunakan API karena umumnya bagaimana Anda akan mengakses API adalah dengan membuat permintaan AJAX, dan saya percaya David telah disebutkan dalam kuliah yang AJAX permintaan umumnya ketika Anda membuat permintaan jaringan untuk beberapa jenis server dan mendapatkan kembali semacam data dan memperbarui halaman instan. Sedangkan dalam JavaScript polos yang akan mengambil nomor gila baris untuk memvalidasi semua header dan melakukan semua hal-hal seperti, jQuery memiliki fungsi sangat sederhana disebut AJAX, dan semua yang harus Anda lakukan di AJAX adalah memberikan parameter yang Anda ingin memberikan API, lokasi API dan segala macam tambahan pilihan yang Anda ingin mengkonfigurasi. Ini benar-benar, benar-benar bagus dan sangat berguna untuk hal semacam ini. Itu semua kita perlu untuk mulai mendapatkan tangan kita kotor di API. Aku akan membawa beberapa contoh dan mengeksplorasi sifat yang berbeda dan mengapa mereka berguna untuk berbagai macam hal. Hal pertama yang saya benar-benar akan menunjukkan kepada Anda adalah sesuatu yang saya kerjakan di laboratorium penelitian saya, yang merupakan Viewer Ngram, dan pada dasarnya ide dari Viewer Ngram adalah Anda dapat mencari beberapa jenis kata atau frase dan melihat seberapa sering itu muncul dalam satu set tertentu dari teks dari waktu ke waktu. Ini contoh di sini adalah set data bayi yang lahir di New York antara 1920 dan 2000. Kita dapat mencari, misalnya, untuk nama Jennifer, dan kita melihat bahwa pra-1960 itu benar-benar tidak digunakan semua yang banyak, dan kemudian saat kami masuk ke tahun kemudian itu menjadi lebih banyak digunakan. Kami juga dapat melakukan perbandingan, jadi jika kita membandingkan Jennifer, misalnya, Thomas, kita dapat melihat Thomas telah cukup lazim sepanjang sejarah, sedangkan Jennifer adalah nama yang lebih baru. Kita bisa melakukan hal semacam itu. Bagaimana ini bekerja aplikasi? Pada dasarnya, ia bekerja melalui API. Dengan kata lain, kita memiliki parameter tertentu di sini. Kami memiliki parameter dari apa yang kita benar-benar mencari, yang nama-nama, dan kemudian kita memiliki beberapa properti lain, seperti sumbu Y dan sumbu X. Anda dapat melihat kita memiliki beberapa pilihan yang berbeda sejauh resolusi waktu untuk menggunakan dan hal semacam itu. Kami memiliki pilihan ini sejauh apa data yang kita benar-benar inginkan dari database, dan kami ingin mendapatkan data kembali dalam beberapa cara yang berguna. Biasanya, jika kita query database secara langsung akan semacam menjadi sakit untuk melakukan karena mungkin ini data tentang nama-nama bayi tinggal di database beberapa tempat, dan itu akan benar-benar rumit untuk harus query secara manual dan memutuskan apa data untuk kembali. Dengan kata lain, kita hanya peduli tentang Jennifer dan Thomas dalam kasus ini, dan kami hanya peduli pada sumbu tertentu dan semua hal-hal seperti. Bagaimana kita mendapatkan sekitar ini? Untuk menggali API ini sedikit lebih saya akan menunjukkan contoh lain dari platform ini yang menggunakan kumpulan data yang sedikit berbeda. Ini kumpulan data, bukannya nama bayi, sebenarnya hanya seluruh cetak basis data publikasi Open Library, yang merupakan sumber raksasa teks diterbitkan sepanjang 100 tahun terakhir atau lebih. Idenya adalah kita memiliki compository jutaan dan jutaan teks, yang sekarang kita dapat mencari kata-kata yang berbeda dan frase masuk Berikut ini adalah contoh yang bervariasi sedikit berbeda dari contoh sebelumnya Saya menunjukkan, yang kita memiliki 3 permintaan pencarian, perang, perang, dan kata Perancis untuk perang, yang guerre. Dan kami sedang mencari dalam 3 bagian yang berbeda dari database total. Dengan kata lain, dalam hal ini permintaan pertama kami hanya mencari di Amerika Serikat, dalam satu detik hanya di Inggris, dan yang ketiga hanya dari karya yang diterbitkan di Prancis. Kami melihat beberapa pola yang menarik muncul. Sebagai contoh, kita lihat tepat di sekitar sini yang- oops, saya kacau sumbu sedikit, tetapi Anda dapat melihat tepat di kisaran ini di sini sekitar Perang Saudara ada lonjakan besar dalam edisi Amerika tapi tidak seperti lonjakan besar dalam dua lainnya, dan itu jelas karena Perang Saudara Amerika yang terjadi pada saat itu. Kita bisa melihat beberapa hal menarik di sana, tapi apa yang kita benar-benar peduli adalah bagaimana kita mendapat data ini. Aku akan membawa Anda di balik layar dalam aplikasi ini dalam sedikit. Sebuah trik rapi adalah jika Anda bekerja dengan situs dan jenis ingin tahu apa yang terjadi di balik layar, Anda dapat membuka alat pengembang. Saya akan menggunakan alat pengembang Chrome, dan untuk sampai ke mereka Anda bisa melakukan kontrol, pergeseran, J, dan yang akan membawa Anda ke konsol JavaScript. Ada beberapa tab di sini. Mereka semua bisa sangat berguna dalam situasi yang berbeda, tapi saya peduli tentang jaringan tab sekarang, dan aku benar-benar harus me-refresh untuk mendapatkan kerja itu. Oh, maaf. Ini suka memberikan contoh acak. Oke, kita akan menggunakan contoh ini bukan kemudian. Idenya adalah ada API ini di sini, dan Anda dapat melihat apa API yang kembali. Ini adalah apa aplikasi yang kembali dari API telah dikirim permintaan itu. Biarkan aku memperbesar sedikit, dan kami pada dasarnya dapat melihat itu hanya serangkaian pasangan nilai kunci di JSON. Dengan kata lain, kita memiliki hashmap sini yang memetakan nilai-nilai. Dengan kata lain, itu pemetaan tahun untuk nilai. Pada tahun 1765 kata apa pun yang kita awalnya mencari digunakan 90 kali dari 1 juta, jadi kita mendapatkan kembali hasil ini. Ini tidak persis JSON karena kita memiliki header ini hasil kecil di sini, tapi perhatikan bahwa ini seluruh objek di sini adalah hanya besar besar JSON gumpalan. Kami memiliki sebuah array di sini yang mengandung seluruh elemen, dan Anda dapat melihat bahwa seluruh elemen berakhir di sana, dan kemudian kita memiliki unsur besar yang berlangsung sepanjang jalan sampai akhir, dan berakhir di sini. Kami memiliki array yang sangat besar dengan 2 benda di dalamnya, dan masing-masing benda adalah hashmap a. Anda dapat melihat dalam masing-masing hashmaps kita memiliki pemetaan ini nilai indeks ke 0 dan nilai nilai ini untuk hashmap lain, yang lagi-lagi adalah pemetaan nilai sumbu X dengan nilai-nilai Y axis. Anda dapat melihat JSON mendapat sedikit rumit, tapi secara keseluruhan, itu sebenarnya sangat berguna, dan itu sangat mudah untuk mengakses dibandingkan dengan lain yang berbeda bentuk notasi. Sejauh apa yang kita benar-benar mengirimkan data ke API untuk mendapatkan, Aku akan pergi ke belakang sedikit di sini. Ini adalah file JavaScript besar yang menangani semua interaksi dari aplikasi web, dan jadi kita tidak peduli tentang sebagian besar ini, tapi kami peduli tentang beberapa hal itu. Sebagai contoh, kita peduli tentang fungsi buildQuery, dan gagasan fungsi ini pada dasarnya itu melihat sekeliling halaman, mencari tahu apa yang pengguna ingin query, dengan kata lain, memeriksa kotak-kotak di mana mereka sudah masukan istilah pencarian mereka, memeriksa Y yang berbeda dan nilai-nilai sumbu X bahwa mereka telah memilih dan semua hal semacam itu, dan itu akan memuntahkan nilai ini permintaan, yang kemudian dapat mengirim ke API. Hal ini terlihat rumit, dan itu cukup rumit tapi apa yang akan saya lakukan-pada kenyataannya, aku sudah melakukan hal ini, yang besar- adalah bahwa aku akan mendapatkan konsol untuk mencetak tahu persis bahwa nilai permintaan bahwa itu mengirimkan ke API. Itu benar-benar di sini. Maaf, itu output banyak hal. Tapi ini adalah apa yang kita pedulikan, objek ini di sini. Ini adalah objek query. Dengan kata lain, ini adalah apa aplikasi web mengirim ke API, dan jadi mari kita melihat ke dalam sedikit, dan kita melihat kita memiliki beberapa nilai di sini. Kita melihat kami memiliki jenis count, yaitu kejadian per juta kata, yang persis apa yang kita telah memilih di sumbu Y di sini. Di situlah yang datang dari. Kami memiliki nilai database, yang berarti bahwa ada beberapa database tertentu bahwa data ini tinggal di, dan kami ingin mengakses data khusus sebagai lawan data nama-nama bayi, misalnya. Kemudian kita memiliki nilai kelompok, yang mengatakan bahwa kita ingin mencari berdasarkan tahun sebagai lawan setiap nilai sumbu X lainnya. Kemudian kita memiliki metode, yang beberapa API akan melakukan beberapa hal. Dengan kata lain, API ini juga dapat mengembalikan data jenis lain, tetapi dalam kasus ini, kita ingin bahwa pemetaan nilai sumbu X ke nilai sumbu Y. Itulah apa yang mengatakan hal itu untuk dilakukan di sana, dan kami memiliki array pencarian batas, yang berisi nilai-nilai 2. Yang pertama adalah apa yang kita lihat di sini, yang merupakan semua nilai yang terkandung dalam kotak kecil pertama di atas. Dengan kata lain, kita ingin mencari pertempuran kata, dan kami ingin untuk menyaring teks-teks bahasa Inggris dalam sastra Amerika. Kami memiliki negara ini, yaitu Amerika Serikat. Kami memiliki bahasa, yang adalah bahasa Inggris, jadi kami memiliki semua bagian yang berbeda yang semuanya mengatakan API persis apa yang kita inginkan. Kami tidak tahu apa data yang kita dapatkan kembali belum, tapi kita tahu bahwa data akan mengambil bentuk tertentu. Contoh ini adalah semacam di sisi yang rumit, dan Anda tidak akan selalu bisa menggunakan API kompleks ini, tapi ini adalah untuk menunjukkan jangkauan dan kekuatan apa yang API bisa dilakukan. Dengan kata lain, menggunakan sistem permintaan yang relatif sederhana, kami pada dasarnya memiliki kotak input dengan pemilih lainnya beberapa di tempat yang berbeda. Biarkan aku tampilannya kembali di sini. Kami memiliki kotak input dengan pilihan metadata beberapa yang berbeda, dan kami memiliki sumbu Y dan sumbu X pilihan. Kami tidak benar-benar memiliki bidang yang banyak, dan kita dapat melihat dengan sangat mudah kita bisa query semacam API dan mendapatkan kembali data dan kemudian memasukkannya ke dalam tabel ini, yang kemudian akan menampilkannya dalam cara yang bermanfaat. Untuk melihat contoh lain yang mungkin sedikit lebih akrab bagi kalian kita akan beralih ke Facebook. API Facebook disebut Graph Facebook, dan pada dasarnya apa artinya adalah Facebook melihat dirinya sebagai database ini besar dari banyak bagian berbeda yang semua memiliki hubungan tertentu satu sama lain. Dengan kata lain, aku pengguna di Facebook, jadi saya memiliki profil, dan saya juga memiliki teman-teman tertentu, dan masing-masing memiliki profil, dan masing-masing dari teman-teman saya memiliki dinding, yang memiliki komentar yang berbeda di atasnya, dan masing-masing memiliki komentar suka dan semua hal semacam itu. Ada banyak bagian yang berbeda untuk Facebook. Ini adalah API sangat kompleks, dan ada ton yang dapat Anda lakukan dengan itu, tapi itu sebenarnya cukup mudah digunakan. Aku akan memulai dengan pergi ke graph.facebook.com / billyjanitsch, yang merupakan nama account yang unik saya, dan nama akun Anda baik akan semacam kata jika Anda telah memilih itu, atau mungkin saja sejumlah nomor. Apa yang kita dapatkan kembali adalah informasi yang cukup mendasar. Kita melihat bahwa saya memiliki nama pertama, yaitu Billy, nama terakhir, yang Janitsch. Ada ID Facebook unik yang saya miliki. Anda dapat melihat bahwa aku laki-laki dan bahwa saya memiliki pengaturan bahasa saya British English. Dengan kata lain, kita melihat informasi yang sangat mendasar di sini. Ini tidak terlalu banyak, tapi itu tidak memberi kita gambaran tentang apa yang ada. Kita bisa melakukan hal yang sama kepada David Malan, misalnya. Saya pikir namanya dmalan. Kami melihat David Malan memiliki ID unik. Dia memiliki nama, nama depan, nama tengah, nama belakang. Kita juga melihat bahwa dia laki-laki dan telah menetapkan bahasa untuk Bahasa Inggris AS. Dengan kata lain, kita melihat informasi yang cukup mendasar di sini. Sekarang, apa yang terjadi jika kita mencoba untuk memeriksa sesuatu yang lain? Katakanlah saya tertarik pada apa yang David Malan telah menyukai di Facebook. Aku bisa melakukan / suka. Sekarang kita telah lari ke masalah. Kami punya semacam error yang mengatakan akses token diperlukan untuk meminta sumber daya ini. Tapi jika Anda berpikir tentang hal ini, yang benar-benar masuk akal karena akan menjadi aneh jika Anda bisa mengakses setiap bagian dari database Facebook hanya dari beberapa jenis API sederhana, kan? Dengan kata lain, mungkin informasi Anda tidak dapat diakses oleh siapa saja yang menginginkannya. Kesalahan ini justru apa artinya. API beberapa memerlukan izin tertentu untuk mengakses data mereka. Dan bahkan lebih maju API, seperti Facebook satu, akan memerlukan izin tertentu untuk melakukan hal-hal tertentu. Saya bisa melihat informasi dasar tentang David Malan. Saya dapat melihat bahwa dia laki-laki dan bahwa ia tinggal di Amerika Serikat, tapi aku tidak bisa benar-benar melihat apa-apa masa lalu itu. Untuk menyiasati hal ini untuk saat ini, Facebook memiliki alat ini bagus yang merupakan grafik API explorer, dan gagasan yang Anda dapat semacam membuat izin untuk diri sendiri berdasarkan pada account Anda sendiri dan kemudian melihat hal-hal yang secara khusus akun Anda dapat melihat. Sebagai contoh, jika saya lakukan graph.facebook.com/billyjanitsch/likes- whoops, saya kira saya harus memvalidasi ulang tanda saya di sini. Oke. Jika saya melakukan hal itu lagi, bagus, sekarang saya melihat bahwa saya mendapatkan obyek ini kembali yang mengatakan bahwa saya suka mie kolam renang, yang berada dalam kategori Permainan dan Mainan. Saya suka walrus, yang berada di Animal kategori. Ini sebenarnya suka Facebook. Mereka agak memalukan. Tapi kita bisa melihat data ini semua kembali di JSON. Ini cukup dibaca. Dengan kata lain, kita memiliki pemetaan data semacam array, dan setiap elemen array ini adalah hashmap yang memetakan nama seperti dan kategori seperti. Masing-masing seperti memiliki ID unik. Ada segala macam hal yang berbeda dari data yang bisa kita dapatkan, dan jika Anda tertarik menggunakan API Facebook untuk proyek akhir CS50 atau untuk hal seperti itu sebenarnya cukup bisa dilakukan. Pada dasarnya bagaimana Anda mendapatkan sekitar hal otentikasi Facebook menggunakan sistem yang disebut OAuth, atau Otentikasi Terbuka, dan saya tidak ingin masuk ke sekarang karena OAuth atau jenis yang berbeda otentikasi cenderung bervariasi banyak antara API yang berbeda, jadi saya bisa menghabiskan waktu yang lama akan lebih masing-masing, tapi mereka sebenarnya cukup jelas. Jika Anda Google Facebook API itu sangat mudah dibaca. Ada spec keseluruhan. Sebagai contoh, ini adalah dokumentasi untuk API Facebook, dan Anda dapat melihat saya pada halaman Pengguna, sehingga saya bisa belajar semua tentang berbagai macam hal yang tersedia untuk mendapatkan data sejauh dan juga hak akses yang berbeda yang saya butuhkan untuk mengaksesnya. Seperti yang kita lihat, kita tidak perlu izin untuk mengakses nama atau jenis kelamin, tetapi di luar itu kita perlu izin untuk hal-hal yang paling. Halaman ini, atau lebih tepatnya, situs ini juga akan memberitahu Anda bagaimana untuk mendapatkan token untuk dapat mengotentikasi sendiri. Kebanyakan sistem otentikasi menggunakan beberapa jenis token di mana Anda mendapatkan nilai yang unik, yang merupakan string yang sangat panjang dan acak, dan cara yang mereka dapat mengasosiasikan permintaan yang Anda membuat dengan Anda. Dengan kata lain, mereka tahu bahwa Anda tidak melakukan sesuatu yang mencurigakan dengan data mereka. Mereka tahu persis apa yang Anda dapatkan. Mereka juga tahu bahwa Anda memiliki izin untuk melihat informasi tersebut. Jika Anda telah membuat sebuah aplikasi Facebook dan aplikasi Anda memiliki pengguna tertentu, dan mereka telah memungkinkan pengguna bahwa aplikasi untuk mengakses bagian-bagian tertentu dari profil mereka, maka apa pun API kunci atau token yang aplikasi yang menggunakan akan dapat mengakses data bagi para pengguna. Hal ini mungkin terdengar rumit, tapi itu tidak terlalu buruk, dan jika Anda ingin menggunakan Facebook Saya akan sangat menyarankan bahwa Anda mempertimbangkan bermain-main dengan API mereka. Ini sangat dingin, dan Anda dapat melakukan banyak hal yang berbeda dengan itu. Jika pengguna memberi Anda izin ini Anda bahkan bisa kembali ke API dan mengatakan saya ingin benar-benar posting ke dinding pengguna ini, atau saya ingin memiliki mereka memposting foto, dan itulah mengapa pada feed berita Anda, Anda kadang-kadang akan mendapatkan hal-hal yang menjengkelkan peribahasa teman Anda telah menonton video ini di semacam situs aneh atau sesuatu seperti itu. Itu karena aplikasi yang telah diberikan akses untuk posting di dinding orang itu. Ide keseluruhan, API Facebook cukup rumit, tetapi juga benar-benar berguna. Pasti senilai check-out jika Anda masih mencari proyek akhir. Lain suite API bahwa aku akan pergi ke atas adalah CS50 API. Biarkan aku tampilannya di sini. CS50 sebenarnya telah mengumpulkan seluruh rangkaian API yang dapat Anda gunakan untuk tugas akhir atau hanya untuk apa pun yang Anda membuat. Dan mereka sebagian besar Harvard terkait, dan mereka bervariasi dari menu HUDs, misalnya, untuk ini Harvard Events API, yang akan membiarkan Anda mengakses daftar berbagai aktivitas yang terjadi di Harvard dan hal semacam itu. Dan jadi kita bisa klik pada salah satu dari ini dan mendapatkan spesifikasi untuk itu, yang Anda akan dapat menemukan untuk setiap API, dan idenya adalah memungkinkan Anda tahu, A, khususnya apa yang harus meminta dari API dan bagaimana memintanya. Dengan kata lain, jika saya ingin semua peristiwa yang terjadi besok maka saya harus jelas memberikan tanggal itu yang saya inginkan dalam format tertentu, dan B, ia akan memberitahu saya apa itu akan memberikan kembali kepada saya. Ini akan mengatakan aku akan kembali Anda ini objek JSON, atau seperti yang Anda lihat, ada format yang berbeda. Anda juga dapat mengembalikan data sebagai CSV, misalnya. Tapi Anda tahu persis bagaimana data yang akan terlihat ketika Anda mendapatkannya kembali sehingga Anda dapat berharap untuk melakukan hal-hal tertentu dengan itu. Kita dapat menggulir ke bawah dan melihat, misalnya, jika kita ingin query API untuk mendapatkan kalender, maka kita dapat menggunakan URL tertentu dan memberikan parameter tertentu yang akan menjadi data yang kita inginkan persis. Dan juga, jika kita ingin kembali data dalam format tertentu, maka kita dapat meminta untuk output data dalam CSV, dan itu hanya satu parameter bahwa kita melewati ke API. Banyak hal keren untuk dilakukan di sana. Saya pasti akan merekomendasikan memeriksa API CS50. Aku akan melihat ini API Makanan Harvard khususnya untuk sedikit. Satu hal yang saya sudah benar-benar dirancang ini Harvard Noms website, yang menggunakan API Makanan CS50 untuk mengambil menu HUDs untuk hari. Dan bagi orang-orang sekolah ekstensi, HUDs adalah layanan makan di Harvard. Apa yang Anda dapatkan adalah halaman ini yang berisi semua makanan untuk hari itu, jadi kita melihat makan siang. Kami memiliki kategori yang berbeda. Kami memiliki kacang dan stasiun gandum. Kami memiliki stasiun beras merah. Kita bisa melihat untuk makan siang kita memiliki beberapa makanan. Jika kita klik pada mereka, maka kita mendapatkan informasi nutrisi. Anda melihat ini adalah informasi nutrisi untuk jeruk, dalam kasus Anda bertanya-tanya. Dan jadi sekali lagi, kita akan mengintip ke ujung kembali ke sini sedikit dan melihat apa sebenarnya ini lakukan untuk mendapatkan data ini. Dan ternyata tidak benar-benar menjadi sangat kompleks sekali. File ini terlihat sedikit berantakan, namun perlu diingat bahwa ini adalah menangani seluruh situs, dan jika saya gulir ke bawah kita melihat fungsi ini perubahan data. Sekarang, hanya harus jelas, ini ditulis dalam CoffeeScript, yang merupakan bahasa yang Anda mungkin belum melihat sebelumnya. Tapi itu cukup dibaca, jadi saya akan berjalan melalui itu seolah-olah pseudocode. Ubah tanggal adalah fungsi yang akan mengambil dalam nilai tanggal, dan itu juga akan mengambil dalam pertama, yang kita tidak peduli sebanyak. Tapi yang penting adalah bahwa ia memiliki tanggal ini, dan tanggal tersebut adalah hari yang kami ingin meminta semua item makanan untuk. Dan kemudian Anda melihat kami memiliki sedikit sintaks di sini, yang pada dasarnya parsing tanggal tersebut ke dalam format yang mudah dibaca. Dengan kata lain, API memerlukan tanggal dalam format tertentu. Anda tidak bisa hanya mengatakan 16 November 2012 AD. Ini tidak akan tahu apa yang harus dilakukan dengan itu. Ia ingin tanggal dalam format tertentu. Semua kita lakukan di sini adalah memberikan persis format tersebut, yang merupakan nilai tahun dan kemudian tanda hubung, nilai bulan, lain tanda hubung dan nilai tanggal. Dan kita juga mengatakan bahwa kita ingin data menjadi output di JSON. Sekarang kita sedang membuat permintaan ini AJAX, dan seperti yang saya sebutkan sebelumnya, jQuery memiliki fungsi yang berguna Super AJAX yang semua yang perlu Anda lakukan adalah menentukan beberapa parameter di sini, dan itu akan memberikan Anda kembali apa yang Anda inginkan. Kami memberitahu bahwa URL yang kita inginkan untuk pergi ke ini API Makanan CS50, yang kita dapatkan dari spec. Kita mengatakan bahwa kita ingin data dalam JSON dan bahwa kita akan memberikan data ini yang kita telah didefinisikan di sini. Ini adalah hari kita ingin item makanan untuk. Dan kemudian yang harus kita lakukan adalah mendefinisikan semacam fungsi sukses, yang pada dasarnya apa yang terjadi ketika API mengembalikan data. Dengan kata lain, kami telah dikemas semua parameter yang kita inginkan, yang dalam hal ini adalah hari yang kita inginkan dan fakta yang kita inginkan dalam JSON, dan kami mengirimkannya ke API, jadi sekarang API mengatakan, oke, di sini adalah data Anda, saya mendapatkannya kembali untuk Anda. Kami memiliki fungsi berhasil, yang berarti mengingat bahwa API berhasil mengembalikan beberapa data, apa yang kita lakukan dengan itu? Dan ternyata bahwa semua yang kita lakukan adalah memanggil fungsi menu pembaruan dengan apa API telah kembali, jadi kita bisa mencari yang dan melihat bahwa semua yang kita lakukan adalah menggunakan sekelompok sintaks baru di sini untuk memperbarui HTML dan masukkan data baru. Apa ini memungkinkan adalah kita memiliki panah di kedua sisinya, dan kita bisa klik, dan sekarang kami sedang melihat data untuk hari berikutnya dan lagi untuk hari berikutnya, dan setiap kali itu memperbarui bahwa nilai tanggal dan query API, mendapatkan kembali beberapa data dan memasukkannya ke situs. Sekali lagi, Anda dapat melihat, super, super berguna. Aplikasi ini membawa saya beberapa jam untuk hack bersama-sama, dan saya memiliki pengalaman sedikit lebih, jelas, tapi CS50 proyek akhir Anda bisa terlihat sangat banyak seperti ini. API super kuat untuk jumlah usaha yang mereka ambil. Hal terakhir yang aku akan pergi ke atas adalah sebuah API lagi luas. Saya tidak akan mendapatkan jauh ke mereka sejauh apa yang mereka lakukan secara khusus, tapi saya akan memberikan Anda gambaran tentang apa yang ada di luar sana. 2 yang benar-benar berguna, jika Anda tertarik dalam analisis data atau visualisasi atau sesuatu seperti itu, adalah Freebase dan Wikipedia. Wikipedia-mungkin Anda semua tahu-adalah ensiklopedia online gratis, dan sebenarnya memiliki API, jadi jika Anda ingin, misalnya, mendapatkan semua teks dan artikel untuk gurita Anda dapat dengan mudah melakukan itu. Just say hey, Wikipedia API, saya ingin data yang dikembalikan karena hal ini, dan saya ingin dalam format ini, dan artikel yang saya ingin adalah gurita, dan sangat cepat akan memberikan Anda kembali informasi tersebut. Itu bisa benar-benar berguna jika Anda ingin membuat semacam situs itu penampil yang lebih baik untuk Wikipedia atau sesuatu seperti itu. Freebase adalah semacam serupa, meskipun sedikit lebih keras sejauh API. Freebase seperti Wikipedia di bahwa itu adalah ensiklopedia online yang berisi banyak dan banyak data yang berbeda tentang segala macam topik yang berbeda, tapi itu disimpan dalam database relasional, yang sedikit berbeda dari Wikipedia. Wikipedia memiliki artikel dan artikel terkait dengan artikel lain, tetapi untuk sebagian besar, jika Anda ingin data untuk gurita, Anda pergi ke artikel gurita, mendapatkan data, dan Anda memiliki banyak teks tentang gurita, jadi itu bagus. Freebase bekerja dengan cara yang sedikit lebih rumit dalam semuanya terkait satu sama lain. Dengan kata lain, jika kita mencari gurita maka itu memiliki banyak kategori yang terkait dengannya. Sebagai contoh, itu binatang, ia hidup di bawah air, memiliki suhu tubuh tertentu. Saya tidak tahu. Dan semua kategori ini adalah link ke tempat-tempat lain di mana Anda dapat pergi untuk melihat hal-hal dengan kategori yang sama. Dengan kata lain, gurita kumpulan data akan berisi link ke kumpulan data untuk semua hewan, dan yang akan membiarkan saya bergerak dalam database sangat cepat. Hal ini dapat sangat berguna jika Anda melakukan sesuatu seperti perbandingan. Dengan kata lain, mengingat hal tertentu, Anda ingin melihat apa lagi itu terkait dengan dan melihat apa lagi itu tidak berhubungan dengan. Hal semacam itu. Hal ini dapat berguna dalam beberapa cara. Jika Anda sedang mencari lebih dari sebuah tantangan, dan untuk dapat melakukan beberapa hal lebih kompleks Saya akan mempertimbangkan mengambil melihat API Freebase. Tapi sebagian besar, Wikipedia adalah tempat yang sangat sederhana untuk pergi sejauh mendapatkan informasi. Tempat lain yang saya akan melihat adalah Last.fm, dan aku benar-benar akan pergi ke situs dalam kasus beberapa orang yang tidak akrab, tapi Last.fm pada dasarnya musik selera dan website rekomendasi. Anda dapat membuat account. Anda dapat memulai musik upload dari pemutar musik Anda ke situs web, dan pada dasarnya itu akan mulai memberikan rekomendasi musik berdasarkan pada apa yang Anda dengarkan. Misalnya, jika Anda pergi ke halaman profil Anda-ini adalah milikku- Anda dapat melihat Anda memiliki daftar baru-baru mendengarkan lagu. Anda dapat melihat artis favorit keseluruhan, semua hal semacam itu, dan lagi, ada API besar di balik Last.fm,  dan Anda dapat menggunakannya untuk melakukan banyak dan banyak hal-hal benar-benar keren. Sebagai contoh, saya akan pergi ke halaman teman yang memiliki website ini Last.fm Tools. Ini sebenarnya platform lain yang dibangun di atas API Last.fm, dan melakukan beberapa hal yang cukup menarik. Jika saya log in dengan nama pengguna saya, misalnya, Aku bisa meminta untuk menghasilkan tag cloud, misalnya, dan apa yang akan kita lakukan adalah memberikan kembali gambar semua berbeda genre dan hal semacam itu yang saya suka mendengarkan. Bagaimana itu lakukan ini? Sangat pada dasarnya itu mengatakan kepada API Last.fm inilah pengguna ini. Saya ingin tahu genre setiap lagu yang mereka pernah mendengarkan, dan Anda dapat melakukannya dengan membuat panggilan AJAX cukup sederhana untuk API Last.fm. Anda akan mendapatkan kembali daftar besar, dan kemudian jelas beberapa hal lain yang sedang dilakukan untuk mengubahnya menjadi awan kata, tetapi Anda dapat melihat keseluruhan itu sangat mudah untuk mengakses dan sangat mudah digunakan. Benar-benar bagus untuk sejumlah hal. Saya pikir itu semua saya akan mengatakan secara keseluruhan. Satu hal terakhir yang saya akan menyebutkan tentang API secara umum adalah bahwa Anda kadang-kadang akan mengalami sesuatu yang disebut rate limiting, dan ide tingkat membatasi adalah Anda tidak ingin menyalahgunakan API. Dengan kata lain, itu benar-benar baik bahwa banyak situs ini memiliki API bahwa Anda dapat pergi ke dan digunakan secara gratis. Namun, jika Anda membuat jutaan atau miliaran permintaan per hari, Misalnya, jika Anda terjebak dalam infinite loop yang tak terhingga query semacam API dan mendapatkan kembali sejumlah besar data, jelas itu tidak baik, jadi apa banyak API lakukan adalah memiliki tingkat ini membatasi fitur yang mengatakan bahwa Anda hanya dapat membuat 1.000 permintaan per hari per alamat IP atau sesuatu seperti itu. Dan jika Anda melakukan banyak pengujian dan hal semacam itu, Anda kadang-kadang akan mengalami itu, dan tiba-tiba Anda akan menutup off dan mengatakan tidak, aku tidak akan memberikan data Anda lagi. Apa yang ingin Anda lakukan adalah bermain sesuai aturan. Anda ingin memastikan bahwa Anda membaca spesifikasi API hati-hati. Jika memiliki aturan tertentu yang melekat padanya, seperti Anda hanya dapat membuat kueri X per hari atau Anda hanya dapat mengakses bagian dari database jumlah tertentu kali atau sesuatu seperti itu Anda ingin memastikan Anda tetap berpegang pada itu. Selama Anda bermain dalam aturan-aturan Anda mungkin akan memiliki waktu yang benar-benar baik menggunakan API. Takeaway keseluruhan Anda adalah API benar-benar, benar-benar berguna. Ada sebuah API untuk hampir semua layanan web besar di luar sana. Hampir semua bagian dari Google Alat Suite, Google Maps, Google Earth, GMail, Google Calendar, semua hal-hal memiliki API. Anda dapat menggunakannya untuk kedua data get dari server dan mengirim data ke server. Dengan kata lain, jika Anda ingin membuat aplikasi kalender yang dapat memperbarui seseorang Kalender Google, ada sebuah API untuk itu. Jika Anda ingin membuat sesuatu yang akan memberitahu Anda di mana lokasi alamat tertentu adalah Anda dapat menggunakan Google Maps API untuk itu. API yang fantastis berguna, dan mereka ada dimana-mana. Jika Anda tertarik pada beberapa jenis ide, mungkin ada API terkait yang dapat Anda gunakan untuk mendapatkan banyak data sangat cepat dan sangat sederhana. Jika Anda masih mencari proyek atau jika Anda hanya ingin bermain-main dengan sesuatu secara umum, API pasti layak dilakukan. Terima kasih, dan saya senang untuk menjawab setiap pertanyaan yang kalian mungkin. Oke, terima kasih banyak. [CS50.TV]