Запросы к API с ПК

Для работы многих программ нужно обращаться к данным. Однако далеко не все данные могут храниться на устройстве, на котором запускается программа. Зачастую необходимо получать информацию из интернета. Например, запросить погоду по населённому пункту, чтобы отобразить её в программе. Как это сделать? С помощью обращения к специальным API.

API

API (Application Programming Interface) – это то, как взаимодействуют друг с другом программы. Например, вы пишете программу, которая должна создавать Word-документ. Вы обращаетесь к библиотеке, которая вызывает API Word-а. Таким образом, ваша программа взаимодействует с его API.

Или, что ближе к теме статьи, вы пишете программу, которая будет отображать ближайшие матчи в Английской Премьер-Лиге. Для того, чтобы получать информацию о матчах, вы делаете запросы к API в интернете. Или вы хотите в рамках вашей программы делать запросы к GPT, парсить их и отображать пользователю вашей программы. Как это? Говоря просто, сделать запрос к API означает открыть ссылку, на которой расположен ресурс с этим API, и при необходимости передать параметры запроса – например, за какие сезоны нужно получить футбольные матчи или на какой вопрос должна ответить GPT. Как правило, это get-запросы.

Если вы нажмёте сюда, то попадёте на страничку API, который выдаёт случайные цитаты.

JSON

JSON расшифровывается как JavaScript Object Notation. Это текстовый формат, в котором передаются данные. JSON состоит из ключей (имён полей) и значений. Выглядит это так – “ключ”: “значение”.

Нагляднее всего вам покажет пример. Если вы перешли по ссылке на API, то увидели в окне браузера некоторый текст. Это и есть JSON, то есть объект с ответом на ваш запрос. Он содержит информацию о случайной цитате.

Вот так будет выглядеть ответ в формате JSON, если мы самостоятельно, не в рамках программы, вставим ссылку для доступа к API в адресную строку браузера.

JSON-объект с цитатой автора

Программа будет делать то же самое – обращаться к этой ссылке в надежде получить JSON, чтобы затем отобразить цитату и её автора в программе. Для расшифровки ответа в формате JSON мы будем использовать библиотеку Gson.

Gson

Библиотека Gson позволяет распарсить ответ, который пришёл в JSON, в удобный и понятный java-объект.

Если вы используете сборщик проекта gradle, нужно вставить следующую строку в блок dependencies в build.gradle:

Если вы пользуетесь maven, вставьте код в блок <dependencies></dependencies> в pom.xml:

Хорошо. Теперь необходимо написать тот самый java-объект, в который будет расшифровываться ответ. Это несложно – просто выделим данные, которые нас интересуют, и определим их как поля класса. А также добавим геттеры и конструктор. В JSON нас интересуют текст и автор цитаты, поэтому названия полей мы берём такие же, какими они прописаны в самом JSON: quoteText и quoteAuthor.

Как видите, самый обычный java-объект.

OkHttp3

Чтобы воспользоваться библиотекой для отправки запросов http, необходимо её добавить в проект.

Давайте подключим эту библиотеку. Код для gradle:

Код для maven:

Отлично. Теперь можно приступать к отправке запросов. Отображать информацию будем самым простым способом – в консоли. Хотя это могла бы быть и форма java swing, и android-приложение, и web-интерфейс.

Напишем бесконечный цикл while для того, чтобы пользователь мог сколько угодно запрашивать новые цитаты по вводу с клавиатуры – по нажатию клавиши enter. Основная логика заключена в методе main(). Реализация запросов к API – в методах sendForFormattedQuote() и sendForQuote().

Вот как выглядит результат работы программы в консоли:

Вывод цитат по API в консоль

Кода совсем немного, а мотивационное приложение с цитатами практически готово. Да, консоль не самый удобный способ отображения, но этот способ отображения легко заменить на другой, причём используя всё тот же API. Например, можно отправлять запросы через Android-приложение.

API – универсальный инструмент, который упрощает взаимодействие между различными программными компонентами. Используйте API других программ и ресурсов, которые уже существуют, вместо того, чтобы изобретать велосипед!

Добавить комментарий