Первоначально опубликовано: https://www.pythoneur.com/easy-interaction-with-web-apis/

Взаимодействие с интерфейсами прикладного программирования (API) не должно быть сложным. В этой статье я поделюсь с вами тремя основными инструментами и советами, которые помогут вам быстро приступить к работе с API и упростить вашу жизнь.

Curl to Requests: создание API-запросов в несколько кликов.

Допустим, мы хотели бы отслеживать и записывать сборы Etherum Gas на ETH Gas Station. С помощью подходящих инструментов вы можете создать запрос API за пару секунд.

1. Перейдите на Веб-сайт, проверьте запрос во вкладке Сеть и скопируйте как cCurl:

2. Затем преобразуйте данные из cCurl в запросы здесь, чтобы получить следующий результат:

3. Измените, если необходимо, любые заголовки или полезные данные и проверьте свой запрос:



Потрясающие модели данных с pydantic

Получение всех ответов JSON от API, проверенных и преобразованных в питонические объекты, становится очень простым с Pydantic.

Проверка данных и управление настройками с помощью подсказок типа Python. Быстрый и расширяемый, pydantic прекрасно работает с вашими линтерами / IDE / мозгом. Определите, какими должны быть данные в чистом каноническом Python 3.6+; подтвердите его с помощью pydantic.

Однако создание моделей из вложенного JSON вручную все еще не доставляет большого удовольствия. Экономьте драгоценное время и создавайте модели несколькими щелчками мыши с помощью jsontopydantic.com. Все, что вам нужно сделать, это скопировать ответ JSON, чтобы сгенерировать pydantic модели.

После того, как у вас есть сгенерированные модели, вы можете выполнить некоторую тонкую настройку:

  • Дважды проверьте типы ввода и при необходимости используйте некоторые замечательные типы данных pydantic, например SecretStr или PaymentCardNumber
  • Добавьте несколько конфигураций классов arbitrary_types_allowed или также популярных orm_mode

Как только у вас все будет готово, вы можете просто распаковать ответ в модель и с легкостью преобразовать его обратно в JSON, используя исходные псевдонимы:

response = requests.get("https://restcountries.eu/rest/v2/alpha/de")
model = Model(**response.json())
print(f"Borders: {model.borders}")
print(f"Flag URL: {model.flag}\n")
print(f"JSON Serialization: {model.json(by_alias=True, exclude={'borders'})}\n")

Как и в предыдущем посте, я также создал небольшой интерактивный пример, который вы можете попробовать:



Отправляйте запросы API из VSCode с помощью Thunder Client

Многие знают Почтальон как важный инструмент при взаимодействии с веб-API. Теперь вы также можете без проблем делать то же самое в VSCode, используя расширение Thunder Client. Специально для новичков это отличный способ также выполнять более сложные вызовы API, требующие аутентификации, параметров и определенных заголовков:

TL; DR

Надеюсь, вам понравился этот короткий пост в блоге о некоторых удобных инструментах, которые значительно упростили мою жизнь при взаимодействии с API. Вкратце, вот что мы узнали:

  1. Проверяйте запросы из браузера и быстро превращайте их в запросы Python с помощью Curl to Requests.
  2. Сохраните некоторые настройки и сгенерируйте проверенные питонические модели данных с помощью jsontopydantic.com.
  3. Поэкспериментируйте и начните работу с API прямо из VSCode с помощью великолепного Thunder Client.

Ищете другие советы и рекомендации? Посмотрите мою недавнюю запись в блоге об обработке грязных текстовых данных: