[Powered by Google Translate] [სემინარი] [Programmer ს შესავალი APIs] [Billy Janitsch] [ჰარვარდის უნივერსიტეტის] [Tommy MacWilliam] [ეს არის CS50.] [CS50.TV] Hi, ყველას, მე ვარ ბილი, და დღეს მე ვაპირებ ვისაუბრებთ APIs, ან განაცხადის პროგრამირების ინტერფეისი, კერძოდ კონტექსტში CS50 საბოლოო პროექტები და რომ ერთგვარი რამ. ზოგადად რა არის API? ძალიან ფართო თვალსაზრისით, ეს ერთგვარი შუა კაცი, რომელიც საშუალებას აძლევს 2 ცალი პროგრამული უზრუნველყოფის ურთიერთობა ერთმანეთთან. სწორედ ამგვარი ძალიან ფართო განმარტებას და არ არის, რომ შესაბამისი, რასაც ჩვენ ვუყურებთ. რაც ჩვენ ნამდვილად გვინდა არის გარკვეული სასარგებლო შუა ადგილზე ურთიერთობის გარკვეული მონაცემთა ბაზა სადღაც. აქ ჩარტში, და ძირითადად იდეა ისაა, რომ ჩვენ განაცხადს, და ჩვენ გვინდა მონაცემების მონაცემთა ბაზაში, მაგრამ ჩვენ არ გვინდა, რომ შეკითხვის ბაზაზე პირდაპირ. ამის ნაცვლად ჩვენ გვინდა გავლა ასეთი ახლო ადამიანი, API. იდეა უკან რომ არის ციფრები 2 და 3 წლის ჩარტში ორივე იქნება ძალიან რთული და ბინძურ. სხვა სიტყვებით, როდესაც API არის querying მონაცემთა ბაზა, ალბათ იქნება გამოყენებით SQL მაგიდები და ყველა რომ სახის პერსონალის, და ჩვენ ვისწავლეთ bit ამის შესახებ CS50, მაგრამ საერთო ჯამში, თქვენ შენიშნა, რომ ცოტა ტკივილი. იგი იღებს ძალიან, ძალიან რთული და ბინძურ, განსაკუთრებით მაშინ, როდესაც თქვენ მიღების კომპლექსი queries და რომ ერთგვარი რამ. რაც ჩვენ ნამდვილად გვინდა არის გარკვეული სასარგებლო და მარტივი გზა მისაღებად, რომ მონაცემები, და ეს იდეა უკან ციფრები 1 და 4 წლის ჩარტში. სხვა სიტყვებით, ჩვენ გვინდა ნამდვილად მარტივი გზა ვუთხრა API რა მიიღოს ჩვენთვის და ნამდვილად მარტივი გზა, რომ მონაცემები უკან. არის კიდევ ერთი მთავარი გზა, რომ მონაცემები ჩვეულებრივ გაგზავნილი და მიღებული, რაც JSON ან JavaScript Object ნოტაცია. რომელიც შეიძლება განსხვავდებოდეს ცოტა რამდენადაც როგორ თქვენ გააგზავნით თხოვნით API. სხვა სიტყვებით, თუ გნებავთ გარკვეული თანხის მონაცემები, თქვენ როგორ ვუთხრა API მისაღებად რომ მონაცემები შეიძლება განსხვავდებოდეს ცოტა. ჩვეულებრივ იგი მოიცავს მიღების გარკვეული ქსელის თხოვნით. სხვა სიტყვებით, წვდომის გარკვეული URL რომ აპირებს ვუთხრა API ზუსტად რა გსურთ, მაგრამ მონაცემები თითქმის ყოველთვის დააბრუნეს, სხვა სიტყვებით, ნომერი 4 in JSON. რა არის JSON ზუსტად? როგორც უკვე ვთქვი, JavaScript Object ნოტაცია. ეს ძირითადად უნივერსალური სტანდარტი გადამცემი და მიმღები მონაცემები. იდეა არის ის, რომ თქვენ გაქვთ ამ 3 კატეგორიაში რამ. თქვენ გაქვთ მასივები, hashmaps და primitives. კოლექტორები და hashmaps თქვენ შევხედე ცოტა in CS50, მაგრამ თქვენ ერთგვარი მიღებული მკაცრი გრძნობა რასაც ისინი. სხვა სიტყვებით, თან კოლექტორები თქვენ იცით, რომ ისინი აკრიფოთ შეკრული, ასე რომ თქვენ მხოლოდ ერთი სახის ტიპის რომ მიდის მთელი მასივი. JSON არის გაცილებით მეტი lenient რომ სახის რამ. ძირითადად იდეა თქვენ ავაშენებთ ეს ობიექტი, რომელიც შეიძლება შედგება ნებისმიერი ამ 3 რამ და შეიძლება შედგება მრავალი პირობა მათგანი, და ისინი შეიძლება წყობილი. აქ ერთგვარი მაგალითი JSON, რაც ამ Curly ფრჩხილებში აქ, თქვენი hashmap, და hashmap ძირითადად რუკების საწყისი გარკვეული გასაღები ზოგიერთი სახის ღირებულება. თქვენ ნახავთ, რომ ჩვენ გვაქვს თვისებები გასაღები, და ეს ობიექტების გადატანა მასივი, რომელიც ამ მთელი რამ. ჩვენ ვხედავთ კიდევ ერთი ელემენტს hashmap, რომელიც ამ გასაღები isAwesome, რაც რუკები პრიმიტიული ღირებულება ასეა, სხვა სიტყვებით, ლოგიკური. Primitives შეიძლება სტრიქონები. ეს შეიძლება იყოს რიცხვებით. ეს შეიძლება იყოს bools, არაფერი რომ. და ხედავთ შინაარსი ამ მასივი რომ თვისებები ქულა აქვს 2 სიმებისათვის ის, თვითმმართველობის მსგავსი და მშვენიერი. იმ 2 თვისებები JSON, და ჩვენ ვხედავთ, რომ JSON მდებარ. შევხედოთ, რომ ცოტა უფრო მჭიდროდ მე ვაპირებ მშენებლობა უფრო რთული მაგალითი JSON აქ. დავიწყოთ მასივი, მაგალითად, მხოლოდ ცარიელი მასივი. მაგრამ ეს ერთგვარი მოსაწყენი, ასე რომ, ჩვენ ვაპირებთ შეავსოთ იგი up bit, და როგორც უკვე ვთქვი, კოლექტორები წელს JSON არიან აკრიფოთ შეკრული, ამიტომ ჩვენ შეგვიძლია აგრეთვე აქვს სიმებიანი აქ, რომელიც Hi, და ეს კიდევ ერთი ელემენტი, რომ მასივი. ანალოგიურად, შეიძლება დაამატოთ hashmapping აქ, რომელიც აპირებს აქვს რამდენიმე mappings. ის აპირებს რუკების საწყისი სახელი სიმებიანი ბილი. ჩვენ გვყავს რუკების საწყისი სახელი ბილი, და ჩვენ გვაქვს აგეგმვითი საყვარელი ფერი ლურჯი. სწორედ ძირითადად კარგი მაგალითი იმისა, JSON. იგი სახის იღებს შევიდა-whoops, გვჭირდება მძიმით იქ-ყველა სხვადასხვა კუთხეში იგი. ისევ, ეს არ აკრიფოთ შეკრული ყველა, ასე რომ თქვენ შეგიძლიათ აქვს რაიმე სახის ტიპის შიგნით არაფერი გსურთ, და იდეა არის ის თვითმმართველობის მსგავსი. სხვა სიტყვებით, ეს უფლება აქ არის JSON ობიექტი, როგორც ეს მთელი რამ, როგორც არის მხოლოდ ამ, ასე რომ თქვენ შეგიძლიათ აქვს პრიმიტიული იყოს ობიექტი, array იყოს ობიექტის ან hashmap იყოს ობიექტი. როგორც თქვენ შეგიძლიათ სახის ვხედავ, JSON მართლაც, ნამდვილად სასარგებლოა, რომ ასე ძალიან მრავალმხრივი. შეგიძლიათ რაიმე შესაძლო მონაცემები, რომ თქვენ შეგიძლიათ conceive შენახული JSON. რომ ხდის მართლაც ლამაზი ენა გამოსაყენებელი APIs რადგან ეს საკმაოდ ბევრი იმას ნიშნავს, რომ არა აქვს მნიშვნელობა, თუ რა მონაცემები, რომ გსურთ იქ იქნება გარკვეული გზა მას უკან JSON. რამდენიმე თვისებები რომ JSON განსაკუთრებით კარგია ასეთი რამ. როგორც ხედავთ, შედარებით ბევრი რამ, რომ თქვენ უკვე მუშაობს in CS50 ეს შედარებით ძალიან ადვილად წასაკითხი და ასევე ძალიან ადვილია დაწერა. შეგიძლიათ აბზაცის ის, თუ გნებავთ, როგორიც მე აკეთებდა, რომ მაგალითად, რომელიც გაძლევთ ლამაზი, მშვენიერი ვერსია, რომ ხედავთ ნამდვილად კარგად. მაგრამ გარდა ამისა, ის ასევე ადვილად წაიკითხოთ და დაწეროთ ამისთვის კომპიუტერში. სხვა სიტყვებით, ადვილი გარჩევის და ადვილი encode, რაც იმას ნიშნავს, რომ ეს საკმაოდ სწრაფად რამდენადაც კითხულობს მონაცემები ეხება, და JSON შეიძლება გამომუშავებული მართლაც სწრაფად. ასევე ძალიან ადვილად მისადგომ სხვადასხვა კუთხეში JSON და რომ ერთგვარი რამ. სწორედ ლამაზი, და უფრო მეტიც, ის ფაქტი, რომ თვითმმართველობის მსგავსი, სხვა სიტყვებით, ის ფაქტი, რომ თქვენ შეგიძლიათ აქვს JSON ფარგლებში JSON ფარგლებში JSON მართლაც ლამაზი მოგროვებისა მონაცემები. მეორე ნაწილი, რომელიც, როგორც წესი, ნამდვილად სასარგებლო მუშაობის APIs არის jQuery. თქვენ გავიგე ცოტა JavaScript, რომელიც ლამაზი გზა მანიპულირება HTML და CSS ფარგლებში ნახვა. მაგრამ სახის იყოს ტკივილის კოდი მარტივი JavaScript, დიდწილად იმიტომ, რომ JavaScript არის ნამდვილად verbose ენაზე. თქვენ უნდა ვისწავლოთ ბევრი სინტაქსი, და მხოლოდ ამის გაკეთება ძალიან მარტივი რამ სჭირდება ბევრი კოდი, ასე რომ jQuery არის ბიბლიოთეკაში ამისთვის JavaScript. სხვა სიტყვებით, ეს JavaScript ფაილის რომ თქვენ შეგიძლიათ გადაწეროთ და შემდეგ გამოიყენოთ jQuery ფუნქციების გავაკეთოთ გარკვეული რამ. და jQuery ძირითადად ხდის თქვენი ცხოვრება მთლიანად ბევრი ადვილია. ეს ამარტივებს რა დასჭირდება ასობით ხაზები JavaScript ქვემოთ რამდენიმე ხაზები jQuery. ეს განსაკუთრებით სასარგებლოა, თუ თქვენ იყენებთ APIs რადგან ზოგადად როგორ თქვენ უნდა წვდომის APIs არის მიერ მიღების AJAX მოითხოვს, და მე მჯერა, დავით აღნიშნა ლექციების, რომ AJAX მოითხოვს ზოგადად, როდესაც თქვენ მიღების ქსელის თხოვნით გარკვეული სერვერზე და დავუბრუნდეთ გარკვეული მონაცემები და განახლებაზე გვერდზე მომენტალურად. ხოლო სადა JavaScript რომ დასჭირდება Crazy ნომრები ხაზები რათა შეამოწმოს ყველა ზედა და ყველაფერი ამ სახის პერსონალის, jQuery აქვს ნამდვილად მარტივი ფუნქცია მოუწოდა AJAX, და ყველაფერი რაც თქვენ უნდა გავაკეთოთ AJAX არის მისცეს პარამეტრების რომ გსურთ მისცეს API, ადგილმდებარეობის API და რაიმე დამატებითი სახის პარამეტრების რომ გსურთ კონფიგურაციის. მართლაც, მართლაც ლამაზი და ძალიან სასარგებლო ამ სახის რამ. სულ ეს ჩვენ გვჭირდება, რომ დაიწყოს მიღების ჩვენს ხელში ბინძური წელს APIs. მე ვაპირებ ზრდიან რამდენიმე მაგალითი და შეისწავლონ მათი განსხვავებული თვისებები და რატომ ისინი სასარგებლოა სხვადასხვა სახის ნივთები. პირველი, რაც მე რეალურად გაჩვენებთ არის ის, რასაც მე მუშაობა ჩემი კვლევითი ლაბორატორია, რომელიც Ngram Viewer, და ძირითადად იდეა Ngram Viewer არის შეგიძლიათ მოძებნოთ გარკვეული სიტყვა ან ფრაზა და ვნახოთ რამდენად ხშირად ეს გამოჩნდა გარკვეული კომპლექტი ტექსტი დროთა განმავლობაში. ეს მაგალითი აქ არის ამ მონაცემთა კომპლექტი ჩვილი რომ დაიბადა ნიუ იორკში შორის 1920 და 2000. ჩვენ შეგვიძლია ვეძებოთ, მაგალითად, სახელი Jennifer, და ჩვენ ვხედავთ, რომ წინასწარ 1960 ის მართლაც არ იყო გამოყენებული ყველა რომ ბევრი რამ, და მაშინ, როგორც ჩვენ შეღწევას შემდგომ წლებში ის ხდება გამოყენებული უფრო და უფრო. ჩვენ შეგვიძლია ასევე გავაკეთოთ შედარებები ასე რომ, თუ შევადარებთ Jennifer რომ, მაგალითად, თომას, ვხედავთ თომას უკვე საკმაოდ გავრცელებული მთელი ისტორიის, ხოლო Jennifer არის ბოლოდროინდელი სახელი. ჩვენ შეგვიძლია გავაკეთოთ, რომ სახის რამ. როგორ აკეთებს ამას განაცხადის მუშაობს? ძირითადად, მუშაობს გავლით API. სხვა სიტყვებით, ჩვენ გვაქვს გარკვეული პარამეტრების აქ. ჩვენ გვყავს პარამეტრების რა ჩვენ რეალურად ეძებს, რომლებიც ამ სახელს, და მაშინ ჩვენ გვაქვს რამდენიმე სხვა თვისებები, მოსწონს Y ღერძი და X ღერძი. თქვენ ხედავთ, რომ ჩვენ გვაქვს რამდენიმე სხვადასხვა ვარიანტი რამდენადაც ახლა რეზოლუციის გამოყენება და რომ ერთგვარი რამ. ჩვენ გვყავს ამ კონფიგურაციის რამდენადაც რა მონაცემები ჩვენ ნამდვილად გინდათ მონაცემთა ბაზიდან, და ჩვენ გვინდა, რომ მონაცემები უკან რაიმე სასარგებლოს გზა. ჩვეულებრივ, თუ ჩვენ querying ბაზაზე პირდაპირ იქნებოდა ერთგვარი იყოს ტკივილი გავაკეთოთ რადგან სავარაუდოდ ამ მონაცემებს Baby სახელები ცხოვრობს გარკვეული მონაცემთა ბაზა სადღაც, და ეს იქნებოდა ნამდვილად რთული რომ უნდა შეკითხვის იგი ხელით და გადაწყვიტოს ზუსტად რა მონაცემები დაბრუნებას. სხვა სიტყვებით, ჩვენ მხოლოდ აინტერესებს Jennifer და თომას ამ შემთხვევაში, და ჩვენ მხოლოდ აინტერესებს შესახებ გარკვეული ღერძი და ყველა რომ სახის ნივთები. როგორ უნდა მიიღოთ დაახლოებით ამ? იმისათვის რომ სანგრები შევიდა ამ API ცოტა მეტი მე შენ გაჩვენებ ერთი მაგალითია ამ პლატფორმა რომელიც იყენებს ოდნავ განსხვავებული მონაცემები კომპლექტი. ეს მონაცემები კომპლექტი, ნაცვლად Baby სახელები, ფაქტიურად მხოლოდ მთელი ბეჭდვა გამოქვეყნების მონაცემთა ბაზის ღია ბიბლიოთეკა, რომელიც გიგანტური წყარო ტექსტები გამოქვეყნებული მასშტაბით ბოლო 100 ან იმდენად წლის. იდეა ისაა, რომ ჩვენ გვაქვს ეს compository მილიონობით და მილიონობით ტექსტი, რაც ჩვენ შეგვიძლია ახლა მოძებნოთ სხვა სიტყვები და ფრაზები სისტემაში აი მაგალითად რომ მერყეობს პატარა განსხვავებულად წინა მაგალითი მე აჩვენა თქვენ, რომელიც ჩვენ გვაქვს ამ 3 ძებნა queries, ომი, ომი, და საფრანგეთის სიტყვა ომი, რომელიც guerre. და ჩვენ ძებნას ფარგლებში 3 სხვადასხვა მონაკვეთებზე სულ ბაზაში. სხვა სიტყვებით, ამ პირველი შეკითხვის ჩვენ მხოლოდ ჩხრეკის ამერიკის შეერთებულ შტატებში, მეორე მხოლოდ ბრიტანეთში, ხოლო მესამე მარტო სამუშაოები გამოქვეყნებული საფრანგეთში. ჩვენ ვხედავთ რამოდენიმე საინტერესო ნიმუშების აღმოცენდეს. მაგალითად, ჩვენ ვხედავთ უფლება გარშემო აქ რაც- oops, მე არევა ღერძი ცოტა, მაგრამ ხედავთ უფლება ამ დიაპაზონი აქ გარშემო სამოქალაქო ომის არის დიდი spike ამერიკულ გამოცემა მაგრამ არა ასეთი დიდი spike მეორე ორი, და ეს აშკარად იმიტომ ამერიკის სამოქალაქო ომის ხდებოდა იმ ეტაპზე. ჩვენ ვხედავთ ზოგიერთი cool პერსონალის იქ, მაგრამ რაც ჩვენ ნამდვილად აინტერესებს არის თუ როგორ მივიღეთ ეს მონაცემები. მე გადაგიყვანთ კულუარებში ამ app წელს ცოტა. სისუფთავე შეასრულა არის თუ თქვენ მუშაობის ადგილზე და სახის გვინდა ვიცოდეთ რა ხდება კულისებში, შეგიძლიათ გახსნათ მდე დეველოპერი ინსტრუმენტები. მე ვაპირებ იყოს გამოყენებით Chrome-ს დეველოპერი იარაღები, და მიიღოს იმ შეგიძლიათ გააკეთოთ კონტროლი, Shift, J, და რომ იღებს თქვენ JavaScript კონსოლი. არსებობს რამდენიმე ჩანართის აქ. მათ შეუძლიათ ყველა იყოს საკმაოდ სასარგებლო ქვეშ სხვადასხვა ვითარებაში, მაგრამ აინტერესებს ქსელის tab ახლავე, და მე რეალურად უნდა ამოცნობა მიიღოს, რომ სამუშაო. ოჰ, უკაცრავად. ეს მოსწონს მისცეს შემთხვევითი მაგალითად. Okay, ჩვენ გამოიყენოს ეს მაგალითი ნაცვლად შემდეგ. იდეა აქ არის ამ API აქ, და ხედავთ ზუსტად ის, რაც API ბრუნდება. ეს არის ის, რაც განაცხადის დღითიდღე უკან API რომელმაც გააგზავნა, რომ მოთხოვნა. ნება მომეცით დიდი ზომით ცოტა, და ჩვენ შეგვიძლია ძირითადად ვხედავ უბრალოდ სერია გასაღები მნიშვნელობის წყვილის JSON. სხვა სიტყვებით, ჩვენ გვაქვს ამ hashmap აქ რომ ობიექტების ღირებულებებს. სხვა სიტყვებით, ის ობიექტების წელი ღირებულებებს. 1765 წელს რასაც სიტყვა ჩვენ თავდაპირველად ეძებდნენ გამოიყენება 90 ჯერ აქედან 1 მილიონი, ასე რომ ჩვენ დავუბრუნდეთ ეს შედეგი. ეს არ არის ზუსტად JSON წლიდან გვაქვს ამ ნაკლები შედეგი თავური აქ, მაგრამ ცნობა ამ მთელი ობიექტი აქ არის მხოლოდ დიდი დიდი JSON blob. ჩვენ გვყავს მასივი აქ რომელიც შეიცავს ამ ელემენტს მთელი, და თქვენ ხედავთ, რომ მთელი ის ელემენტი მთავრდება იქ, და მაშინ ჩვენ გვაქვს სხვა დიდი ელემენტს რომ მიდის ყველა გზა ქვემოთ ბოლომდე, და რომ დამთავრდა აქ. ჩვენ გვყავს მართლაც დიდი მასივში 2 ობიექტების ის, და თითოეული იმ ობიექტების hashmap. თქვენ შეგიძლიათ ნახოთ თითოეულ იმ hashmaps გვაქვს რუკების ამ ინდექსის მნიშვნელობა 0 და ამ ღირებულების ღირებულების სხვა hashmap, რომელიც კვლავ და კვლავ ობიექტების X ღერძი ფასეულობები Y ღერძი ღირებულებებს. თქვენ ხედავთ, JSON იღებს ცოტა რთულია, მაგრამ საერთო ჯამში, ეს ძალიან სასარგებლო და ძალიან ადვილია წვდომისათვის შედარებით სხვადასხვა ფორმების ნოტაცია. რამდენადაც რა ჩვენ რეალურად გაგზავნის მონაცემების API მისაღებად, მე ვაპირებ წასვლას უკან ბოლომდე ცოტა აქ. ეს არის დიდი JavaScript ფაილი რომ გატარება ყველა ურთიერთქმედების აპარატის ვებ აპლიკაცია, და ამიტომ ჩვენ არ აინტერესებს ყველაზე მეტად, მაგრამ ჩვენ ვფიქრობთ ზოგიერთი მას. მაგალითად, ჩვენ აღელვებს ამ buildQuery ფუნქცია, და იდეა ამ ფუნქციის ძირითადად ის ეძებს გარშემო გვერდზე, მჭიდროდაა რა მომხმარებელს სურს შეკითხვის, სხვა სიტყვებით, შემოწმების იმ ყუთები, სადაც ისინი შეყვანის მათი ძიება პირობები, შემოწმების სხვადასხვა Y-სა და X ღერძის ღირებულებებს, რომ მათ მიერ არჩეული და ყველა რომ სახის რამ, და ის აპირებს Spit out ამ შეკითხვის ღირებულებით, რაც შემიძლია შემდეგ off იმ API. ეს გამოიყურება რთული, და ეს საკმაოდ რთული მაგრამ რა მე ვაპირებ do-ფაქტობრივად, მე უკვე ამით, რაც საკმაოდ დიდი- არის ის, რომ მე ვაპირებ კიდევ კონსოლში უნდა ამობეჭდოთ ზუსტად რომ შეკითხვის ღირებულება რომ ის გაგზავნის off იმ API. სწორედ პრაქტიკულად უფლება აქ. ვწუხვართ, შედეგები ბევრი რამ. მაგრამ ეს არის ის, რაც ჩვენ აღელვებს, ეს ობიექტი უფლება აქ. ეს არის შეკითხვის ობიექტი. სხვა სიტყვებით, ეს არის ზუსტად ის, რაც ვებ განაცხადის აგზავნის იმ API, და მოდით შიგნიდან ცოტა, და ჩვენ ვხედავთ, ჩვენ გვაქვს რამდენიმე ღირებულებების აქ. ჩვენ ვხედავთ, რომ ჩვენ გვაქვს ეს რაოდენობა ტიპის, რომელიც შემთხვევები თითო მილიონი სიტყვა, სწორედ იმას, რასაც ჩვენ არჩეულ იმ Y ღერძი აქ. სწორედ აქ რომ მოდის. ჩვენ გვყავს მონაცემთა ბაზაში ღირებულებით, რაც იმას ნიშნავს, რომ არსებობს გარკვეული მონაცემთა ბაზა რომ ეს მონაცემები ცხოვრობს, და ჩვენ გვინდა, რათა შეამოწმონ, რომ მონაცემები კონკრეტულად როგორც ეწინააღმდეგებოდა Baby სახელები მონაცემები, მაგალითად. მაშინ ამ ჯგუფების ღირებულება, რომელიც ამბობს, რომ ჩვენ გვინდა ძებნა წელიწადში ნაცვლად ნებისმიერი სხვა X ღერძი ღირებულება. მაშინ ჩვენ გვაქვს მეთოდი, რომელიც რამდენიმე APIs გავაკეთებ მრავალჯერადი რამ. სხვა სიტყვებით, ამ API შეიძლება ასევე დაბრუნების სხვა სახის მონაცემები, მაგრამ ამ შემთხვევაში, ჩვენ გვინდა, რომ აგეგმვითი X ღერძი ფასეულობები Y ღერძი ღირებულებებს. სწორედ რომ ეუბნება მას ესაქმებათ, და ჩვენ გვაქვს ამ ძებნის ლიმიტები მასივი, რომელიც შეიცავს 2 ღირებულებებს. პირველი არის ის, რაც ჩვენ ვხედავთ აქ, რაც ყველა ღირებულებები შეიცავს, რომ პირველ პატარა ყუთში ზედა. სხვა სიტყვებით, ჩვენ გვინდა ვეძებოთ სიტყვა ბრძოლა, და გვინდა, რომ გავფილტროთ ის ინგლისური ტექსტების ფარგლებში ამერიკულ ლიტერატურაში. ჩვენ გვყავს ამ ქვეყანაში, რომელიც ამერიკის შეერთებულ შტატებში. ჩვენ გვყავს ენაზე, რომელიც არის ინგლისური, ამიტომ ჩვენ ყველა ამ სხვადასხვა კუთხეში რომ ყველა ვეუბნებოდი API ზუსტად რა გვინდა. ჩვენ არ ვიცით, რა მონაცემები, რომ ჩვენ დავუბრუნდეთ არის კიდევ, მაგრამ ჩვენ ვიცით, რომ მონაცემები აპირებს მიიღოს გარკვეული ფორმა. ეს მაგალითი არის ერთგვარი on რთული მხარე, და თქვენ არ აუცილებლად გამოყენებით API ამ კომპლექსი, მაგრამ ეს არის გაჩვენოთ სპექტრი და ძალა რა APIs შეუძლია გააკეთოს. სხვა სიტყვებით, გამოყენებით შედარებით მარტივი შეკითხვის სისტემა, რომელსაც ჩვენ ძირითადად აქვს შეყვანის ყუთი რამდენიმე სხვა selectors სხვადასხვა ადგილებში. ნება მომეცით zoom უკან აქ. ჩვენ გვყავს input box რამდენიმე სხვადასხვა მეტადატის selections, და ჩვენ გვაქვს Y ღერძი და X ღერძის selections. ჩვენ არ რეალურად რომ სხვადასხვა სფეროში, და ვხედავთ ძალიან მარტივად ჩვენ შეუძლია შეკითხვის გარკვეული API და მიიღონ მონაცემები თავში და შემდეგ დააყენა იგი ამ ჩარტში, რომელიც შემდეგ აპირებს არიან ეს სასარგებლო გზაა. შევხედოთ კიდევ ერთი მაგალითია, რომ შეიძლება იყოს უფრო მეტი ნაცნობი თქვენ ბიჭები ჩვენ ვაპირებთ მივმართოთ Facebook. Facebook-ის API ეწოდება Facebook Graph, და ძირითადად რა ეს ნიშნავს, რომ არის Facebook ხედავს თავად როგორც ამ მასიური მონაცემთა ბაზა უამრავი სხვადასხვა კუთხეში რომ ყველას გვაქვს გარკვეული ურთიერთობები ერთმანეთს. სხვა სიტყვებით, მე მომხმარებლის Facebook-ზე, ამიტომ აქვს პროფილი, და მე ასევე გარკვეულ მეგობრები, და თითოეული მათგანი ნახვა, და თითოეული ჩემი მეგობრები ჰყავს კედელი, რომელმაც სხვადასხვა კომენტარი მასზე, და თითოეული მათგანი კომენტარი აქვს მოსწონს და ყველა რომ სახის რამ. არსებობს უამრავი სხვადასხვა ნაწილებით Facebook. ეს უკიდურესად კომპლექსური API, და არსებობს ტონა შეგიძლიათ შუაში იყო, მაგრამ სინამდვილეში საკმაოდ მარტივი გამოყენება. მე ვაპირებ დაიწყება მიერ აპირებს graph.facebook.com / billyjanitsch, რაც ჩემი ორიგინალური სახელწოდება და თქვენი ანგარიშის სახელი ან იყოს რაღაც სიტყვა თუ თქვენ აგვირჩევია, ან შეიძლება უბრალოდ იყოს სიმებიანი ნომრები. რა მივიღებთ უკან საკმაოდ ძირითადი ინფორმაცია. ჩვენ ვხედავთ, რომ მაქვს სახელი, რომელიც ბილი, გვარი, რომელიც Janitsch. არსებობს უნიკალური Facebook ID რომელიც მე. თქვენ ხედავთ, რომ მე ვარ კაცი და რომ მე მაქვს ჩემი ენის პარამეტრები ბრიტანული ინგლისური. სხვა სიტყვებით, ჩვენ ვხედავთ ძალიან ძირითადი ინფორმაცია აქ. ეს არ არის ძალიან ბევრი, მაგრამ ეს იმას გვაძლევს იდეა რა იქ. ჩვენ შეგვიძლია გავაკეთოთ იგივე დავით Malan, მაგალითად. ვფიქრობ მისი სახელი dmalan. ჩვენ ვხედავთ, დავით Malan აქვს უნიკალური ID. მას აქვს სახელი, სახელი, მამის სახელი, გვარი. ჩვენ ასევე ვხედავთ, რომ ის კაცი და აქვს თავისი ენის კომპლექტი აშშ ინგლისურ ენაზე. სხვა სიტყვებით, ჩვენ ვხედავთ საკმაოდ ძირითადი ინფორმაცია აქ. ახლა, რა ხდება თუ ჩვენ ვცდილობთ სანახავად out რაღაც? ვთქვათ მაინტერესებს რას დავით Malan არ მოეწონა Facebook-ზე. შემიძლია / მოსწონს. ახლა ჩვენ გადაეყარონ პრობლემა. გვაქვს გარკვეული შეცდომა, რომელიც ამბობს, დაშვების ნიშნად საჭირო მოითხოვოს ამ რესურსის. მაგრამ თუ ფიქრობთ ამის შესახებ, რომ რეალურად აზრი, რადგან ეს იქნებოდა უცნაური თუ თქვენ ვერ შედიხართ თითოეული ნაწილი Facebook-ის მონაცემთა ბაზაში მხოლოდ გარკვეული მარტივი API, არა? სხვა სიტყვებით, სავარაუდოდ თქვენი ინფორმაცია არ შეიძლება იქნეს მიერ ვისაც სურს მას. ეს შეცდომა სწორედ რომ ნიშნავს. ზოგიერთი APIs მოითხოვს გარკვეული ნებართვების იმისათვის, რათა შეამოწმონ მათი მონაცემები. და კიდევ უფრო მოწინავე APIs, როგორიცაა Facebook ერთი, დასჭირდება გარკვეული ნებართვების გავაკეთოთ გარკვეული რამ. მე ვხედავ, ამ ძირითად ინფორმაციას დავით Malan. მე ვხედავ, რომ ის კაცი და რომ ის ცხოვრობს აშშ, მაგრამ მე ვერ ვხედავ ვერაფერს წარსულში რომ. იმისათვის რომ გარშემო ეს არის, Facebook-ს აქვს ამ ლამაზი ინსტრუმენტი რაც გრაფაში API Explorer, და იდეა, რომელიც შეგიძლიათ სახის შეადგინოს ნებართვების თავის ეფუძნება თქვენი საკუთარი ანგარიშის და შემდეგ სანახავად რამ, რომ კონკრეტულად თქვენი ანგარიში შეგიძლიათ ნახოთ. მაგალითად, თუ graph.facebook.com/billyjanitsch/likes- whoops, ვფიქრობ უნდა revalidate ჩემი ნიშნად აქ. Okay. თუ რომ ერთხელ, დიდი, ახლა ვხედავ, რომ მივიღო ეს ობიექტი უკან რომელშიც ნათქვამია, რომ მე მიყვარს აუზი noodles, რომლებიც კატეგორია თამაშები და სათამაშოები. მომწონს მორჟები, რომლებიც კატეგორია Animal. ეს არის ჩემი ფაქტობრივი Facebook მოსწონს. ისინი სახის უხერხულ. მაგრამ ჩვენ ვხედავთ ამ მონაცემების ყველა დაბრუნდა JSON. ეს საკმაოდ იკითხება. სხვა სიტყვებით, ჩვენ გვაქვს ამ რუკების მონაცემთა გარკვეული მასივი, და თითოეული ელემენტის ამ მასივი hashmap რომელიც რუკები სახელწოდება მოსწონს და კატეგორიის მოსწონს. თითოეული მოსწონს აქვს უნიკალური ID. არსებობს ყველა სახის სხვადასხვა ნივთები მონაცემები, რომ ჩვენ შეგვიძლია კიდევ, და თუ თქვენ დაინტერესებული გამოყენებით Facebook API for CS50 საბოლოო პროექტი ან არაფერი რომ რეალურად საკმაოდ doable. ძირითადად, თუ როგორ მიიღოთ დაახლოებით ავტორიზაციის რამ არის Facebook იყენებს სისტემის მოუწოდა OAuth, ან ღია ავთენტურობის, და მე არ მინდა შეღწევას ეს არის, რადგან OAuth ან სხვადასხვა ტიპის აუტენტიფიკაციის tends განსხვავდება ბევრი შორის სხვადასხვა APIs, ამიტომ მე ვერ დახარჯავს ხნის განმავლობაში მიმდინარეობს მეტი თითოეული, მაგრამ ისინი რეალურად საკმაოდ თვითმმართველობის განმარტებითი. თუ Google Facebook API ძალიან იკითხება. არსებობს მთელი სპეც. მაგალითად, ეს არის დოკუმენტაცია Facebook API, და ხედავთ მე on მომხმარებელი გვერდზე, ასე, რომ შეიძლება ვისწავლოთ ყველაფერი სხვადასხვა სახის ნივთები , რომლებიც ხელმისაწვდომი იქნება კიდევ რამდენადაც მონაცემები და ასევე სხვადასხვა ნებართვების რომ მჭირდება რათა შეღწევის დროს. როგორც დავინახეთ, ჩვენ არ გვჭირდება ნებართვების წვდომისათვის სახელი ან სქესისა, მაგრამ ამის მიღმა ჩვენ გვჭირდება ნებართვების საუკეთესო რამ. ეს გვერდი, ან უფრო სწორად, ამ ნახვა ასევე გითხრათ, თუ როგორ უნდა ნიშნად უნდა შეეძლოს სინამდვილის თავს. ყველაზე ავტორიზაციის სისტემების გამოყენება გარკვეული ჟეტონი სადაც თქვენ მიიღოს ამ უნიკალური ღირებულება, რომელიც მართლაც ხანგრძლივი და შემთხვევითი სტრიქონი, და ამ გზით მათ შეუძლიათ გაერთიანდნენ თხოვნით, რომ თქვენ მიღების თქვენთან ერთად. სხვა სიტყვებით, მათ იციან, რომ თქვენ არ აკეთებს არაფერს საეჭვო მათი მონაცემები. მათ იციან ზუსტად რა თქვენ მისაღებად. მათ ასევე იციან, რომ თქვენ გაქვთ სანახავად რომ ინფორმაციას. თუ თქვენ გააკეთა Facebook app და თქვენი app აქვს გარკვეული წევრებს, და იმ მომხმარებლებს არ დაუშვეს, რომ app წვდომისათვის გარკვეული ნაწილების მათი ნახვა, მაშინ რასაც API გასაღები ან ჟეტონი რომ app იყენებს შეძლებს წვდომისათვის მონაცემები იმ მომხმარებლებს. ეს შეიძლება გასწავლოთ რთულია, მაგრამ ეს არ არის ძალიან ცუდი, და თუ გსურთ გამოიყენოთ Facebook მინდა უაღრესად გირჩევთ რომ განიხილოს თამაშობენ გარშემო მათი API. ძალიან მაგარი, და თქვენ შეგიძლიათ ბევრი სხვადასხვა რამ არის. თუ მომხმარებლის ანიჭებს თქვენ ამ ნებართვების თქვენ შეგიძლიათ კიდევ დაბრუნდეს API და ვთქვათ მე მინდა რეალურად პოსტი ამ მომხმარებლის კედლის, ან მინდა რომ მათ პოსტი ფოტო, და ამიტომაც თქვენს ამბები Feed თქვენ ზოგჯერ მიიღოს იმ უსიამოვნოს რამ ამბობდა თქვენი მეგობარი უყურებს ამ ვიდეო გარკვეული უცნაური საიტი ან რამე მაგდაგვარს. ეს იმიტომ, რომ რომ app მიენიჭა ხელმისაწვდომობის საგუშაგო, რომ პირის კედლის. იდეა ზოგადად, Facebook API საკმაოდ გართულებულია, არამედ მართლაც სასარგებლო. აუცილებლად ღირს შემოწმების გარეთ თუ თქვენ ჯერ კიდევ ეძებს საბოლოო პროექტი. მეორე კომპლექტს APIs რომ მე ვაპირებ წასვლა მეტი არის CS50 APIs. ნება მომეცით მიუახლოვდით აქ. CS50 ფაქტობრივად დააყენა ერთად მთელი რიგი APIs რომ თქვენ შეგიძლიათ გამოიყენოთ საბოლოო პროექტის ან უბრალოდ არაფერი, რომ თქვენ მიღების. და ისინი ძირითადად ჰარვარდის დაკავშირებული, და მათ მერყეობს HUDS მენიუ, მაგალითად, ამ ჰარვარდის თარიღები API, რომელიც გაძლევთ წვდომას სიაში სხვადასხვა მოვლენების რომ მიმდინარეობს ჰარვარდის და რომ ერთგვარი რამ. და ასე შეგვიძლია დააწკაპუნეთ ერთი ასეთი და მიიღეთ Spec ამისთვის, რომელიც თქვენ უნდა იპოვოთ ნებისმიერი API, და იდეა არის ეს საშუალებას თქვენ იცით,, კონკრეტულად რა უნდა მოსთხოვოს API და როგორ მოითხოვოს იგი. სხვა სიტყვებით, თუ მინდა ყველა ღონისძიება, რომელიც ხდება ხვალ მაშინ მაქვს აშკარად მისცეს მას, რომ თარიღი, რომ მინდა გარკვეული ფორმატი, და B, ის მეუბნებოდა ზუსტად რასაც ის აპირებს უკან ჩემთვის. იგი იტყვის მე ვაპირებ დაბრუნებას თქვენ ამ JSON ობიექტი, ან მოსწონს ხედავთ, არსებობს სხვადასხვა ფორმატებში. თქვენ ასევე შეგიძლიათ დაბრუნებას მონაცემები CSV, მაგალითად. მაგრამ თქვენ იცით ზუსტად როგორ, რომ მონაცემები აპირებს look როდესაც თქვენ მას უკან ასე რომ თქვენ შეგიძლიათ ველით უნდა გავაკეთოთ გარკვეული რამ არის. ჩვენ შეგვიძლია გადახვევა down და ვხედავთ, მაგალითად, თუ გვინდა, რომ შეკითხვის API მიიღოს კალენდარი, მაშინ ჩვენ შეგვიძლია გამოვიყენოთ ამ კონკრეტულ URL და მისცეს მას გარკვეული პარამეტრების რომლებიც იქნება მონაცემები, რომ ჩვენ გვინდა ზუსტად. ანალოგიურად, თუ გვინდა მონაცემები უკან გარკვეული ფორმატი, მაშინ შეგვიძლია მოვითხოვოთ ეს დაბეჭდვის მონაცემების CSV, და ეს კიდევ ერთი პარამეტრი, რომ ჩვენ ავლით, რათა API. უამრავი მაგარი რამ უნდა გააკეთოს იქ. მე აუცილებლად გირჩევთ შემოწმების out CS50 APIs. მე ვაპირებ შევხედოთ ამ ჰარვარდის კვების API კერძოდ ცოტა. ერთი რამ მე რეალურად შექმნილია ეს ჰარვარდის Noms ნახვა, რომელიც იყენებს CS50 კვების API ვიღებ HUDS მენიუ დღისთვის. და გაგრძელების სკოლის ადამიანი, HUDS არის სასადილო სამსახურის ჰარვარდის. რა თქვენ ამ გვერდზე, რომელიც შეიცავს ყველა კვება ამ დღისთვის, ასე ვხედავთ ლანჩი. ჩვენ გვყავს რამდენიმე სხვადასხვა კატეგორიები. ჩვენ გვყავს ლობიო და მთელი მარცვლეულის სადგური. ჩვენ გვყავს ყავისფერი ბრინჯი სადგური. ჩვენ ვხედავთ იმ ფილიალი გვაქვს ამ რამდენიმე კვების საკითხი. თუ ჩვენ დააწკაპუნეთ მათ, მაშინ მივიღებთ კვების ინფორმაციას. ხედავთ ეს არის კვების ინფორმაციის გრეიფრუტი, იმ შემთხვევაში თუ თქვენ გაინტერესებთ. და ა.შ. კიდევ ერთხელ, ჩვენ ვაპირებთ, რათა თანხმობა შევიდა უკან ბოლომდე აქ ცოტა და რა ზუსტად ამ ყველაფერს აკეთებს, რათა ამ მონაცემებს. და აღმოჩნდება, რომ რეალურად არ იყოს ძალიან რთული იყო. ეს ფაილი გამოიყურება პატარა ბინძურ, მაგრამ გახსოვდეთ, რომ ეს გატარება მთელი საიტი, და თუ გადახვევა ქვემოთ ჩვენ ვხედავთ ამ ცვლილების მონაცემები ფუნქცია. ახლა, უბრალოდ უნდა იყოს წმინდა, ამ წერია CoffeeScript, რაც ენის, რომ თქვენ ალბათ არ მინახავს ადრე. მაგრამ ეს საკმაოდ იკითხება, ამიტომ მე გავლა, როგორც იმისა, რომ იგი იყო pseudocode. შეცვლის თარიღი არის ფუნქცია, რომელიც აპირებს ამ თარიღის მნიშვნელობის, და ასევე აპირებს წელს პირველად, რომელიც ჩვენ არ აინტერესებს იმდენი. მაგრამ მთავარია, რომ მას ამ თარიღს, და რომ თარიღი არის დღე, რომ ჩვენ გვინდა, მოითხოვოს ყველა საკვები ნივთები. და მაშინ ვხედავთ ჩვენ გვაქვს ცოტა სინტაქსი აქ, რომელიც ძირითადად პარსინგის რომ თარიღი შევიდა იკითხება ფორმატში. სხვა სიტყვებით, API მოითხოვს თარიღის გარკვეული ფორმატში. თქვენ არ შეგიძლიათ უბრალოდ, ვამბობთ 16 ნოემბერს, 2012 AD. ეს არ იცის რა უნდა გააკეთოს, რომ. ეს სურს თარიღის კონკრეტული ფორმატში. ყველა ვაკეთებთ აქ ვაძლევთ მას ზუსტად რომ ფორმატი, რომელიც წელიწადში ღირებულება და შემდეგ დეფისი, თვეში ღირებულება, სხვა დეფისი და თარიღის მნიშვნელობის. და ჩვენ ასევე ვაცხადებთ ჩვენ გვინდა მონაცემები უნდა იყოს გამოტანის JSON. ახლა ჩვენ ვდებთ ამ AJAX თხოვნით, და როგორც ვთქვი ადრე, jQuery აქვს ამ სუპერ სასარგებლო AJAX ფუნქცია, რომელიც ყველა თქვენ მხოლოდ უნდა მიუთითოთ რამდენიმე პარამეტრების ქვემოთ აქ, და ეს მოგცემთ უკან ზუსტად რა გსურთ. ჩვენ ვეუბნებით, რომ URL ჩვენ გვსურს წასვლა ეს CS50 კვების API, რაც მივიღეთ საწყისი სპეც. ჩვენ ვამბობთ, რომ ჩვენ გვინდა მონაცემების JSON და რომ ჩვენ ვაპირებთ მისცეს მას ამ მონაცემთა რომელიც ჩვენ განსაზღვრული აქ. ეს არის დღე გვინდა საკვები ნივთები. და მაშინ ყველა ჩვენ უნდა გავაკეთოთ არის განსაზღვროს გარკვეული წარმატების ფუნქცია, რომელიც ძირითადად რა ხდება, როდესაც API დააბრუნებს, რომ მონაცემები. სხვა სიტყვებით, ჩვენ შეფუთული up ყველა პარამეტრებით, რომ ჩვენ გვინდა, რაც ამ შემთხვევაში არის დღე, რომ ჩვენ გვსურს და ის ფაქტი, რომ ჩვენ გვინდა ეს JSON, და ჩვენ გადაუგზავნა off to API, ამიტომ ახლა API ამბობს, okay, აქ არის თქვენი მონაცემები, მე მივიღე უკან თქვენთვის. ჩვენ გვყავს წარმატების ფუნქცია, რაც იმას ნიშნავს, რომ API წარმატებით ბრუნდება გარკვეული მონაცემები, რასაც ვაკეთებთ ეს? და აღმოჩნდება, რომ ყველა ვაკეთებთ არის დაარქვით განახლება მენიუ ფუნქცია ერთად რასაც API დაბრუნდა, ამიტომ ჩვენ შეგვიძლია ვეძებოთ, რომ და ვხედავთ, რომ ყველა ვაკეთებთ იყენებს bunch ახალი სინტაქსი აქ განაახლოთ HTML და ჩადეთ ამ ახალი მონაცემები. რა ამ საშუალებას არის გვაქვს ამ ისრებით ორივე მხარეს, და ჩვენ შეგვიძლია დააწკაპუნეთ, და ახლა ჩვენ შევხედავთ მონაცემებს მომდევნო დღეს და ისევ მეორე დღეს, და ყოველ ჯერზე ის განახლებაზე, რომ თარიღი ღირებულების და querying API, დავუბრუნდეთ გარკვეული მონაცემები და აყენებს მას საიტი. ერთხელ, ხედავთ, სუპერ, სუპერ სასარგებლო. ეს აპლიკაცია წამიყვანეს რამდენიმე საათი hack ერთად, და მე უფრო მეტი გამოცდილება, ცხადია, მაგრამ თქვენი CS50 საბოლოო პროექტი შეგვიძლია რაღაც ძალიან მოსწონს ეს. APIs არიან სუპერ ძლიერი ამისთვის თანხის ძალისხმევა, რომ ისინი იღებენ. ბოლო რამ მე ვაპირებ წასვლა მეტი არის კიდევ რამდენიმე APIs ფართოდ. მე ვერ მიიღებენ რამდენადაც შევიდა მათ რამდენადაც რას აკეთებს კონკრეტულად, მაგრამ მე მოგცემთ იდეა რა out არსებობს. 2 ნამდვილად სასარგებლო პირობა, თუ თქვენ დაინტერესებული მონაცემთა ანალიზის ან ვიზუალიზაცია ან არაფერი რომ, არიან Freebase და ვიკიპედია. Wikipedia-სავარაუდოდ მოგეხსენებათ-არის უფასო ონლაინ ენციკლოპედია, და ეს რეალურად აქვს API ასე რომ, თუ გსურთ, მაგალითად, მიიღონ ყველა ტექსტები და სტატიებს Octopus შეგიძლიათ ძალიან მარტივად გავაკეთოთ, რომ. უბრალოდ, ვამბობთ hey, Wikipedia API, მინდა მონაცემები დაბრუნდა როგორც ეს, და მინდა ეს ამ ფორმატში და მუხლის მე მინდა არის Octopus, და ძალიან სწრაფად იგი მოგცემთ უკან რომ ინფორმაციას. რომელიც შეიძლება მართლაც სასარგებლო თუ გინდათ გარკვეული საიტი რომ უკეთ დამთვალიერებელის Wikipedia ან რამე მაგდაგვარს. Freebase არის ერთგვარი ანალოგიური, თუმცა ეს ცოტა რთული რამდენადაც API. Freebase ჰგავს Wikipedia, რომ ის არის ონლაინ ენციკლოპედია რომელიც შეიცავს უამრავი და უამრავი სხვადასხვა მონაცემებს ყველა სახის სხვადასხვა თემებზე, მაგრამ შენახული relational მონაცემთა ბაზა, რომელიც არის ოდნავ განსხვავებული from Wikipedia. ვიკიპედია აქვს თავისი სტატია და სტატია დაკავშირებულია სხვა სტატიები, მაგრამ დიდი ნაწილი, თუ გნებავთ მონაცემების Octopus, მიდიხარ Octopus მუხლი, მიიღოთ, რომ მონაცემები, და თქვენ გაქვთ bunch of ტექსტი შესახებ octopuses, ასე რომ დიდი. Freebase მუშაობს ოდნავ უფრო რთული ფორმით, რომ ყველაფერი დაკავშირებული ერთმანეთთან. სხვა სიტყვებით, თუ ჩვენ ეძებს Octopus მაშინ მას აქვს bunch of კატეგორიაში ასოცირდება იგი. მაგალითად, ეს ცხოველი, ის ცხოვრობს წყალქვეშა, მას აქვს გარკვეული სხეულის ტემპერატურის. მე არ ვიცი. ყველა ამ კატეგორიაში არის ბმულები სხვა ადგილებში, სადაც შეგიძლიათ გადასვლა რომ ნახოთ რამ რომ იგივე კატეგორიაში. სხვა სიტყვებით, Octopus მონაცემები კომპლექტი იქნებოდა შეიცავდეს ბმული მონაცემები დადგენილი ყველა ცხოველები, და რომ ნება მომეცით გადაადგილება ბაზაში მართლაც სწრაფად. ეს შეიძლება იყოს ძალიან სასარგებლო, თუ თქვენ აკეთებთ რაღაც შედარებები. სხვა სიტყვებით, თუ გავითვალისწინებთ გარკვეული რამ, გსურთ იხილოთ რა ეს დაკავშირებული და ვნახოთ რა ეს არ არის დაკავშირებული. რომ სახის რამ. ეს შეიძლება იყოს სასარგებლო რიგ გზებს. თუ თქვენ ეძებს უფრო გამოწვევას და გამოუვა რაღაც უფრო რთული რამ მინდა განიხილოს აღების შევხედოთ Freebase API. მაგრამ დიდწილად, ვიკიპედიაში არის ძალიან მარტივი წასასვლელი რამდენადაც ინფორმაციის მიღება. კიდევ ერთი ადგილი, რომ მე შევხედოთ არის Last.fm და მე რეალურად აპირებს მისვლას საიტი იმ შემთხვევაში თუ ზოგიერთი ადამიანი არ იცნობენ, მაგრამ Last.fm ძირითადად მუსიკა გემოვნებისა და რეკომენდაციები ნახვა. შეგიძლიათ გააკეთოთ ანგარიშზე. შეგიძლიათ ატვირთვა მუსიკა თქვენი music player to ნახვა, და ძირითადად ეს დაიწყება გაწვდით მუსიკა რეკომენდაციები რის საფუძველზე თქვენ მოვუსმინოთ. მაგალითად, თუ თქვენ გადადით თქვენი პროფილის გვერდზე-ეს არის ნაღმებისაგან ხედავთ თქვენ გაქვთ სიაში ახლახანს მოისმინა ჩანაწერები. თქვენ შეგიძლიათ ნახოთ სრული საყვარელი მხატვრები, ყველა რომ სახის რამ, და ისევ, არის დიდი API უკან Last.fm,  და თქვენ შეგიძლიათ მისი გამოყენება უნდა გააკეთოს უამრავი და უამრავი მართლაც მაგარი რამ. მაგალითად, მე წასვლა მეგობრის გვერდზე, რომელსაც აქვს ამ Last.fm ინსტრუმენტები ნახვა. ეს არის რეალურად კიდევ ერთი პლატფორმა რომ აგებული Last.fm API, ეს სულაც ხმების საკმაოდ საინტერესო რამ. თუ მე მომხმ ჩემი მომხმარებლის სახელი, მაგალითად, შემიძლია ვთხოვო მას გენერირებისათვის საკვანძო სიტყვები, მაგალითად, და რა, რომ აპირებს გააკეთოთ მომეცი უკან იმიჯი ყველა სხვადასხვა ჟანრის და რომ სახის რამ, რომ მე მიყვარს მოუსმინოს. როგორ ხდება მისი ამით? ძალიან ძირითადად ის ამბობდა, რომ Last.fm API აქ ამ მომხმარებლის. მინდა იცოდეს ჟანრის ყველა სიმღერა, რომ ისინი ოდესმე მოისმინა, და შეგიძლიათ, რომ მიერ მიღების საკმაოდ მარტივია AJAX ზარი Last.fm API. თქვენ მიიღებთ უკან დიდი სია, შემდეგ კი აშკარად რაღაც სხვა პერსონალის კეთდება ჩართოთ იგი სიტყვის ღრუბელი, მაგრამ ხედავთ საერთო ძალიან ადვილია, რათა შეამოწმონ და ძალიან მარტივი. მართლაც ლამაზი რიგი რამ. მიმაჩნია, რომ ყველა მე ამბობენ საერთო. ერთი ბოლო რამ მე მითითება APIs ზოგადად ის არის, რომ თქვენ ზოგჯერ გადაეყარონ რაღაც მოუწოდა განაკვეთის შეზღუდვის, და იდეა განაკვეთის შეზღუდვის არის თქვენ არ მინდა ბოროტად APIs. სხვა სიტყვებით, ეს ნამდვილად სასიამოვნოა, რომ ბევრი ამ საიტებზე აქვს APIs რომ თქვენ შეგიძლიათ წასვლა და გამოიყენოთ უფასოდ. თუმცა, თუ თქვენ მიღების მილიონობით და მილიარდობით მოითხოვს დღეში, მაგალითად, თუ თქვენ დავრჩებოდით უსასრულო loop რომ უსასრულოდ querying გარკვეული API და დავუბრუნდეთ დიდი ოდენობით მონაცემები, აშკარად რომ არ არის კარგი, ასე რომ ბევრი APIs გააკეთოთ ეს კურსი შეზღუდვის ფუნქცია რომელიც ამბობს, თქვენ შეგიძლიათ მხოლოდ მიიღოს 1,000 მოითხოვს დღეში თითო IP მისამართი ან რამე მაგდაგვარს. და თუ თქვენ აკეთებთ ბევრი ტესტირებისა და რომ ერთგვარი რამ, თქვენ ზოგჯერ გადაეყარონ რომ, და მოულოდნელად იგი დახურეს თქვენ off და ვთქვათ, არა, მე არ გაწვდით აღარ მონაცემები. რა გსურთ არის თამაში მას წესები. თქვენ გვინდა დავრწმუნდეთ, რომ თქვენ წაიკითხოთ API Spec ფრთხილად. თუ მას აქვს გარკვეული წესები ერთვის ის, ისევე როგორც თქვენ შეგიძლიათ მხოლოდ მიიღოს X queries დღეში ან შეგიძლიათ მხოლოდ წვდომას ნაწილი ბაზაში გარკვეული რაოდენობის ჯერ ან რაღაც მსგავსი, რომ თქვენ გვინდა დავრწმუნდეთ, რომ თქვენ ჯოხი რომ. სანამ თქვენ თამაშობთ ფარგლებში იმ წესების თქვენ ალბათ მართლაც ლამაზი დრო გამოყენებით APIs. შენი საერთო takeaway არის APIs მართლაც, მართლაც სასარგებლო. არსებობს API თითქმის ნებისმიერი დიდი ვებ სამსახურის out არსებობს. საკმაოდ ბევრი ნებისმიერი ნაწილი Google ინსტრუმენტები Suite, Google Maps, Google Earth, Gmail, Google Calendar, ყველა იმ რამ APIs. თქვენ შეგიძლიათ გამოიყენოთ ისინი როგორც მონაცემების მიღება საწყისი სერვერზე და მონაცემების სერვერზე. სხვა სიტყვებით, თუ მინდოდა კალენდარი app რომ შეიძლება განაახლოს ვინმეს Google კალენდარი, არსებობს API გააჩნია. თუ გინდათ, რომ რაღაც ხდება გითხრათ, სადაც ადგილმდებარეობის გარკვეული მისამართი შეგიძლიათ გამოიყენოთ Google Maps API გააჩნია. APIs are fantastically სასარგებლო და ისინი ყველგან. თუ თქვენ დაინტერესებული გარკვეული იდეა, იქ ალბათ დაკავშირებული API რომ თქვენ შეგიძლიათ გამოიყენოთ მიიღოს ბევრი მონაცემები ძალიან სწრაფად და ძალიან მარტივად. თუ თქვენ ჯერ კიდევ ეძებს პროექტის ან თუ უბრალოდ გსურთ ითამაშოს გარშემო რაღაც ზოგადად, APIs ნამდვილად ღირს. მადლობა, და მოხარული ვარ, უპასუხოს ნებისმიერ შეკითხვას, რომ თქვენ ბიჭები შეიძლება ჰქონდეს. Okay, მადლობას უხდის ბევრი. [CS50.TV]