Перейти к контенту

Что такое REST API?

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

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

 

Как работает этот интерфейс?

Прежде всего, API должен иметь URL-адрес хоста (или базовый URL-адрес), который является основным адресом, с которым вы будете взаимодействовать.

Кроме того, у API есть предопределенный набор конечных точек — уникальных адресов внутри host-URL, отвечающих за их функциональность. Кроме того, API-интерфейсы должны иметь документацию, объясняющую все конечные точки, типы возвращаемых значений и т. д.

После того, как вы найдете API и прочитаете документацию, вам нужно отправить запрос — одну-единственную задачу для сервера (принимающей стороны). Образно говоря, это похоже на разговор двух людей: кто-то (вы) задает вопрос (запрос), а собеседник (конечная точка) отвечает (ответ).

Типы запросов API

API может обрабатывать множество различных типов запросов, но вот наиболее часто используемые:

  • GET — возвращает данные с сервера. Кстати, самый популярный запрос.
  • POST — добавляет новые данные на сервер. Часто этот тип используется для регистрации или загрузки файлов.
  • PUT / PATCH — обновляет данные, полезный запрос, но не очень востребованный.
  • Delete — удаляет данные с сервера.

Что означает REST?

Это стиль программного взаимодействия, который помогает клиенту получить необходимые данные в рабочем состоянии для представления (REST — передача репрезентативного состояния).

Поэтому, когда мы говорим REST API, мы имеем в виду — API, которые не только возвращают запрошенные данные, но и подготавливают их для дальнейшей работы.

Но как мы можем создать RESTful API? Все, что требуется — набор архитектурных ограничений:

Клиент-серверная архитектура — четкое разделение на две стороны. Клиент отправляет запросы и ждет ответа; тогда сервер играет противоположную роль. Основная причина этого ограничения — одна сторона не заботится ни о чем, кроме правильного формата взаимодействия (это не ваша проблема, как сервер выполняет ваш запрос и наоборот).

Независимость каждого отдельного запроса от всех предыдущих и будущих запросов. Например, если вы отправите вопрос в cpa сеть «Какой мой id?», А затем зададите вопрос «Сколько сегодня лидов было?», Сервер не сможет ответить на последний, так как он не сохраняет информацию от клиента и требует ее в каждом запросе.

Кэшируемость — вместо сервера клиент может (и даже должен) сохранять некоторые данные в локальном хранилище (кеш-памяти). Увеличивает производительность, поскольку количество запросов будет меньше.

Многоуровневая система — сервер должен включать слои для разных частей процесса. Это полезно, потому что слои ничего не знают друг о друге, и сервер можно легко масштабировать с помощью новых слоев (например, безопасности).

Единый интерфейс — каждая конечная точка должна иметь уникальный адрес. Просто, полезно и необходимо.

Теперь, когда у нас есть вся информация о Java RESTful API, давайте попробуем на примере.

Во-первых, на вашем компьютере должна быть установлена ​​Java. Кроме того, у вас должен быть конструктор пакетов Maven для простой установки и использования пакетов сайта. В остальном нам понадобится только библиотека Unirest для беспроблемного выполнения запросов в несколько строк.

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

URLConnection connection = new URL(“<some_url>/<endpoint>?param1=value1&param2=value2”).openConnection();
connection.setRequestProperty("header1", header1);
connection.setRequestProperty("header2", header2);
//Get Response  
InputStream is = connection.getInputStream();
System.out.println(connection.getContentType());

Выглядит довольно сложно, правда? Особенно InputStream как тип возвращаемого значения (его нужно обрабатывать дополнительно).

 

Давайте посмотрим на тот же пример с Unirest:

HttpResponse <String> httpResponse = Unirest.get(“<some_url>/<endpoint>?param1=value1&param2=value2”)
       .header("header1", header1)
       .header("header2", header2);
       .asString();
System.out.println( httpResponse.getHeaders().get("Content-Type"));

Вы можете назначить ожидаемый тип ответа и сразу поработать с ним.

Вы можете использовать Unirest с помощью Maven, затем создать проект Java Maven и найти файл pom.xml — он показывает все зависимости и инструменты проекта. Вставьте следующую часть XML-кода в тег <dependencies>:

<dependency>
     <groupId>com.mashape.unirest</groupId>
     <artifactId>unirest-java</artifactId>
     <version>1.4.9</version>
</dependency>

Теперь вы можете создать свой проект с помощью следующей команды в терминале (будьте осторожны, используйте ее только в основной папке, потому что pom.xml должен быть виден для Maven):
mvn пакет

Иногда бывает сложно найти бесплатный и полезный API для тестирования. В RapidAPI вы найдете более 10 000 API для тестирования и подключения. Здесь вы можете проверить свои навыки программирования, создать полезные приложения и даже создать свои собственные API.

Оцени статью

Средняя оценка / 5. Количество голосов:

Спасибо, помогите другим - напишите комментарий, добавьте информации к статье.

Или поделись статьей

Видим, что вы не нашли ответ на свой вопрос.

Помогите улучшить статью.

 

Пока нет комментариев.

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

Ваш e-mail не будет опубликован.

СайдбарКомментарии (0)