доступными для клиентских программ. API меняются реже, чем макеты веб-страниц,
поэтому изменения в клиентах также меньше распространены. Быстрый чистый
конвейер также позволяет проще создавать гибридные приложения — комбинации,
которые не предвиделись, но могут быть полезны и даже прибыльны.
Простейшим API является веб-интерфейс, который предоставляет данные
в структурированном формате вроде JSON или XML (но не в текстовом формате
или формате HTML). API может быть минимальным или полнофункциональным
RESTful API (это понятие рассматривается в подразделе «API для Сети и Re-
presentational State Transfer» раздела «Веб-сервисы и автоматизация» главы 9), это
позволит найти еще один выход для байтов, не знающих устали.
В самом начале этой книги вы видели веб-API — этот интерфейс выбрал самые
популярные видеоролики с YouTube. Следующий пример теперь покажется вам
более осмысленным, поскольку вы уже прочитали о веб-запросах, JSON, словарях,
списках и разбиении:
import requests
url = "https://gdata.youtube.com/feeds/api/standardfeeds/top_rated?alt=json"
response = requests.get(url)
data = response.json()
for video in data['feed']['entry'][0:6]:
print(video['title']['$t'])
API особенно полезны для получения данных с популярных сайтов социальных
медиа вроде Twitter, Facebook и LinkedIn. Все эти сайты предоставляют бесплатные
API, но требуют от вас регистрации и получения ключа (долго генерируемой тек-
стовой строки, ее часто называют токеном), который будет использоваться при
соединении. Ключ помогает сайту определить, кто получает доступ к данным.
Он также может использоваться для того, чтобы ограничить трафик запросов. При-
мер с YouTube, который вы только что видели, не требует использования API-ключа
для поиска. Однако ключ потребуется, если вы будете делать вызовы, обновляющие
данные на YouTube.
У следующих брендов имеются интересные API служб:
New York Times (http://developer.nytimes.com/);
YouTube (http://gdata.youtube.com/demo/index.html);
Сети
335
Twitter (https://dev.twitter.com/docs/twitter-libraries);
Facebook (https://developers.facebook.com/tools/);
Weather Underground (http://www.wunderground.com/weather/api/);
Marvel Comics (http://developer.marvel.com/).
Примеры API для карт вы можете увидеть в приложении Б, примеры других
API — в приложении В.
Удаленная обработка
Большинство примеров этой книги показывали, как вызвать код Python на одной
машине зачастую в рамках одного процесса. Но Python позволяет вызывать код на
других машинах, если они входят в локальную сеть. Сеть компьютеров дает вам
доступ к большему количеству процессов и/или потоков.
Удаленные вызовы процедур
Удаленные вызовы процедур (Remote Procedure Call, RPC) выглядят как обычные
функции, но выполняются на удаленных машинах по всей сети. Вместо того чтобы
вызывать RESTful API и передавать туда аргументы, закодированные в URL или