Начнем с небольшого сюрприза. Запустите сессию Python в окне терминала и введите следующую строку:
>>>> import antigravity
Эта строка скрыто вызывает модуль стандартной библиотеки webbrowser и перенаправляет ваш браузер по просветительской ссылке. (Если вы по какой-то причине не видите ее, посетите сайт xkcd.)
Вы можете использовать этот модуль непосредственно. Эта программа загружает страницу главного сайта о Python в ваш браузер:
>>>> import webbrowser
>>>> url = 'http://www.python.org/'
>>>> webbrowser.open(url)
>True
Этот код откроет ее в новом окне:
>>>> webbrowser.open_new(url)
>True
А этот — на новой вкладке, если ваш браузер поддерживает вкладки:
>>>> webbrowser.open_new_tab('http://www.python.org/')
>True
Модуль webbrowser заставляет браузер делать всю работу.
API для Сети и Representational State Transfer
Зачастую данные доступны только внутри веб-страниц. Если вы хотите получить к ним доступ, вам нужно получить доступ к странице через браузер и прочитать ее. Если с момента вашего последнего визита авторы сайта внесли какие-нибудь изменения, местоположение и стиль данных могли измениться.
Вместо того чтобы публиковать веб-страницы, вы можете предоставить доступ к данным через веб-интерфейс программирования приложений (Application Programming Interface, API). Клиенты получают доступ к вашему сервису, делая запросы к URL, и получают ответы, содержащие статус и данные. Вместо HTML-страниц данные имеют формат, который удобнее использовать в других программах вроде JSON и XML (в главе 8 содержится более подробная информация о форматах).
Понятие «передача состояния представления» (Representational State Transfer, REST) было определено Роем Филдингом (Roy Fielding) в его докторской диссертации. Многие продукты имеют REST-интерфейс или интерфейс RESTful. На практике это часто означает, что они имеют веб-интерфейс — определения URL, предназначенные для доступа к веб-сервису.
Служба RESTful использует глаголы HTTP определенными способами, описанными далее:
• HEAD — получает информацию о ресурсе, но не его данные;
• GET — как подразумевает имя, GET получает данные ресурса с сервера. Это стандартный метод, используемый вашим браузером. В любое время, когда вы видите URL с вопросительным знаком (?), за которым следует несколько аргументов, вы можете распознать запрос GET. GET не должен использоваться для создания, изменения или удаления данных;
• POST — этот глагол обновляет данные на сервере. Он часто используется для HTML-форм и сетевых API;
• PUT — этот глагол создает новый ресурс;