Как использовать веб-API в Python 3
API, или snterfaceApplicationProgramI, позволяет разработчикам интегрировать одно приложение с другим. Они раскрывают некоторые внутренние механизмы программы ограниченным образом.
Вы можете использовать API для получения информации из других программ или для автоматизации вещей, которые вы обычно делаете в своем веб-браузере. Иногда вы можете использовать API, чтобы делать то, что вы просто не можете делать другим способом. Удивительное количество веб-ресурсов предлагают веб-API вместе с более привычным веб-сайтом или мобильным приложением, включая Twitter, Facebook, GitHub и DigitalOcean.
Если вы прошли через несколько руководств поhow to code in Python 3 и вам удобны синтаксис, структура и некоторые встроенныеfunctions Python, вы можете писать программы Python, которые используют ваши любимые API.
В этом руководстве вы узнаете, как использовать Python сDigitalOcean API для получения информации о вашей учетной записи DigitalOcean. Затем мы рассмотрим, как применить полученные знания кGitHub’s API.
Когда вы закончите, вы поймете концепции, общие для всех веб-API, и у вас будет пошаговый процесс и рабочие примеры кода, которые вы можете использовать для опробования API-интерфейсов других служб.
Предпосылки
Прежде чем начать это руководство, вам потребуется следующее:
- Локальная среда разработки для Python 3. Вы можете следоватьHow To Install and Set Up a Local Programming Environment for Python 3, чтобы настроить все, что вам нужно.
- Текстовый редактор, который вам удобно использовать. Если у вас еще нет избранного, выберите его с подсветкой синтаксиса. Notepad++ для Windows,BBEdit для macOS иSublime Text илиAtom для любой платформы — все это хороший выбор.
- Учетная запись DigitalOcean и ключ API. Первые несколько абзацев вHow To Use the DigitalOcean API v2 показывают, как это сделать.
Первый шаг в использовании нового API — это найти документацию и понять, как это сделать. Документация по API DigitalOcean начинается сhttps://developers.digitalocean.com/. Чтобы найти API для других сервисов, выполните поиск по названию сайта и «API» — не все сервисы продвигают их на своих первых страницах.
У некоторых сервисов естьAPI wrappers. Оболочка API — это код, который вы устанавливаете в своей системе, чтобы упростить использование API на выбранном вами языке программирования. Это руководство не использует никаких оболочек, потому что они скрывают большую часть внутренней работы API и часто не раскрывают все, что может сделать API. Обертки могут быть хороши, когда вы хотите что-то сделать быстро, но твердое понимание того, что могут делать сами API, поможет вам решить, имеют ли обертки смысл для ваших целей.
Во-первых, взгляните на Введение в DigitalOcean API вhttps://developers.digitalocean.com/documentation/v2/ и попытайтесь понять только основы того, как отправлять запрос и чего ожидать в ответе. На данный момент вы пытаетесь изучить только три вещи:
- Как выглядит запрос? Они все только URL? Для более подробных запросов, как данные отформатированы? Обычно этоJSON или параметры строки запроса, как в веб-браузере, но некоторые используют XML или пользовательский формат.
- Как выглядит ответ? Документы API будут показывать образцы запросов и ответов. Собираетесь ли вы получить JSON, XML или какой-то другой ответ?
- Что входит в заголовки запроса или ответа? Часто заголовки запроса включают ваш токен аутентификации, а заголовки ответа предоставляют текущую информацию об использовании вами службы, например, насколько вы близки к пределу скорости.
API DigitalOcean использует HTTPmethods (иногда называемыйverbs), чтобы указать, пытаетесь ли вы прочитать существующую информацию, создать новую информацию или что-то удалить. В этой части документации объясняется, какие методы используются и для каких целей. Как правило, запрос GET проще, чем POST, но к тому времени, как вы это сделаете, вы не заметите большой разницы.
В следующем разделе документации API обсуждается, как сервер будет отвечать на ваши запросы. Как правило, запрос либо выполняется успешно, либо не выполняется. В случае сбоя причиной может быть что-то плохое в запросе или проблема на сервере. Вся эта информация передается с помощьюHTTP status codes, трехзначных чисел, разделенных на категории.
- Серия 200 означает «успех» — ваш запрос был действителен, и ответ логически следует из него.
- Серия 400 означает «неверный запрос» — что-то было не так с запросом, поэтому сервер не обработал его так, как вы хотели. Распространенными причинами ошибок уровня s HTTP 400 являются неверно отформатированные запросы и проблемы аутентификации.
- Серия 500 означает «ошибка сервера» — ваш запрос мог быть в порядке, но сервер не смог дать вам хороший ответ прямо сейчас по причинам, не зависящим от вас. Это должно быть редко, но вы должны знать о возможности, чтобы вы могли обрабатывать их в своем коде.
Ваш код должен всегда проверять код состояния HTTP для любого ответа, прежде чем пытаться что-либо с ним делать. Если вы этого не сделаете, вы потеряете время на устранение неполадок с неполной информацией.
Теперь, когда у вас есть общее представление о том, как отправить запрос и что искать в ответе, пришло время отправить этот первый запрос.
[[step-2 -—- Get-information-from-the-web-api]] == Шаг 2 — Получение информации из веб-APIВаша учетная запись DigitalOcean содержит некоторую административную информацию, которую вы, возможно, не видели в веб-интерфейсе. API может дать вам другое представление о знакомой информации. Простое видение этого альтернативного представления иногда может зажечь идеи о том, что вы, возможно, захотите сделать с помощью API, или выявить службы и опции, о которых вы не знали.
Давайте начнем с создания проекта для наших скриптов. Создайте новый каталог для проекта с именем apis :
Затем перейдите в этот новый каталог: