Добрый день. В этом видео мы разберемся, что такое API.
Хотя мне приятнее называть апи, и почему надо получать данные через апи,
а не парсингом html. Также мы узнаем, у каких сайтов есть апи.
Так что же такое апи? Апи или API - программный интерфейс приложения.
Даже из названия понятно,
что это - какой-то интерфейс для взаимодействия одних программ с другими.
Например, у модуля Beautiful Soup, когда мы вызывали его методы,
мы просто пользовались его апи. Апи - это такая штука,
куда ты передаешь данные, ты не знаешь, как она там внутри работает,
и ты получаешь какой-то ответ назад.
Когда мы говорим, об апи в применении к вебу, это называется веб-апи.
Как правило, это урл или набор урлов,
на которые мы можем делать http-запросы, передавая свои данные,
и получать в ответ какие-то данные, отформатированные,
как правило, в JSON или XML.
Также есть связанный термин RPC - удаленный вызов процедур.
Это когда программа на одном компьютере вызывает методы или функции,
расположенные на другом компьютере. При этом данные передаются по сети,
а ответ также передается по сети назад. И при этом, на самом деле, то,
что используются сети, и то,
что используются программы, запущенные на другом компьютере,
может даже быть незаметно, скрываться от конечного разработчика.
В применении к вебу, как правило, одним из вариантов RPC
может являться SOAP - Simple Object Access Protocol.
Это текстовый протокол, внутри него лежит XML, а в качестве транспорта используются http.
Также в этом смысле может использоваться rest. Это такой архитектурный стиль,
когда есть клиент, сервер, и клиент, сервер обмениваются данными.
Также там подразумевается отсутствие состояния, возможность кэшировать и так далее.
Но в детали мы вдаваться не будем. Так почему же нужно использовать API?
Дело в том, что когда мы парсили html, мы, в общем-то, делали неправильно.
Html предназначен для браузера. Там очень много разметки,
которая используется чисто для визуального форматирования документа,
то есть много мусора. К тому же, дизайнер может захотеть завтра
перекрасить какую-нибудь кнопочку и разместить ее в другом месте.
Это изменит весь html, может изменить весь html.
И ваш парсер, который вчера прекрасно работал,
завтра уже не будет работать на этом сайте.
В то время как API создан специально для работы с программами,
там нет никакого мусора, мусорных тегов, какого-то форматирования лишнего.
Там, как правило, находятся чисто данные в XML или в JSON,
бывают и другие варианты, но вообще, как правило, это XML или JSON.
К тому API, как правило,
не меняется внезапно, даже если API нужно доработать или изменить,
принято, как правило, новое API выкладывать по новому рулу,
а старый поддерживать на старом,
поэтому для вашей программы ничего не должно измениться.
API, как правило, подразумевает какой-то удобный формат ответа,
XML или JSON, без лишних мусорных данных. И с помощью API,
если работа с сайтом это подразумевает, как правило,
можно не только читать, но и изменять данные.
В общем, пользоваться API быстрее и проще, чем парсить html.
У каких же все-таки сайтов есть API?
На самом деле, практически у всех информационных
сайтов в том или ином виде API присутствует.
Например на сайте Центробанка, с которого мы получали курс Евро,
есть API, которая возращает в XML курсы всех валют.
И парсить данные из XML гораздо проще и удобнее,
чем из html, к тому же с Beautiful Soup это будет очень просто.
У википедии, которую мы тоже пробовали парсить,
есть свое API, оно позволяет искать статьи,
изменять их, в общем, в принципе, делать все, что угодно на сайте википедии.
У новостей mail.ru АPI как такового нет,
но есть rss-лента, которая, в общем то, тоже является вариантом API
и даже используется как API многими программами для чтения собственно rss-лент.
У YouTube есть API, у gismeteo есть API.
У Вконтакте есть огромная API, которая позволяет искать пользователей,
отсылать им сообщения, читать их сообщения, смотреть новости групп и так далее.
В общем, позволяет делать абсолютно все, что можно сделать через любой клиент Вконтакте.
Давайте подведем какие-то итоги. Мы бегло пробежались по терминологии.
Узнали, почему всегда, когда это возможно, нужно использовать API, а не парсить html.
Да просто потому что это удобнее. Узнали, что API есть у многих сайтов.
А в следующем видео мы попробуем поработать с API разных сайтов на практике.