Что такое REST API?
Last updated: 11 мая 2025 г.REST API
– простой способ коммуникации между приложениями основанный на http методах передачи данных. Помним эти методы – GET
, POST
и др.
Приложения могут обмениваться данными в различных форматах. То есть обмен данными между приложениями может происходить например в формате обмена XML файлами. Также обмен может происходить с помощью JSON, HTML или др.
Приложения между которыми происходит обмен могут быть написаны на разных языках, главное чтобы эти приложения были способны пропарсить (это значит считать данные из файла) передаваемые файлы с данными (XML, JSON или HTML файлы).
Что же такое API?
API
— это механизмы (или проще говоря, способы), с помощью которых клиентское приложение может обратиться к серверному приложению. Точнее, это конкретные методы (функции) на сервере, к которым можно обратиться по URL через HTTP.
Кроме самих методов, API включает правила, как правильно к ним обращаться: какой HTTP-метод использовать (GET, POST и т.д.), какие данные передавать и что можно получить в ответ.
Если говорить ещё точнее, API — это интерфейс серверного приложения, то есть набор доступных снаружи способов взаимодействия с сервером без знания его внутреннего устройства.
То есть под API-интерфейсом понимается то, что мы описали выше: серверные HTTP-обработчики и правила, как к ним обращаться — без знания внутренней реализации обработчиков.
У каждого специализированного веб-приложения может быть свое собственное особенное API.
Например, API приложения для покупки билетов.
У сервиса для покупки билетов есть API, который позволяет клиентскому приложению отправить запрос на бронирование или оплату. Сервер обрабатывает этот запрос и возвращает результат.
У многих известных веб-сервисов, как правило, есть свое API. У Facebook, GitHub и т.д. API
, как уже говорилось, это методы(функции) для обмена данными определенные в программах этих веб-сервисов. Вышеупомянутые веб-ресурсы предоставляют ссылки для обращения к своим методам. То есть кто угодно может сделать запрос к какому-либо методу веб-сервиса по этим ссылкам и получить от этого веб-сервиса какие-то данные.
Давайте для примера посмотрим на страницу с перечислением Api методов сервиса FaceBook предназначенных для сбора статистики FaceBook страницы:

Как видим, нам предлагается ссылка по которой мы можем вызвать конкретный метод сервиса FaceBook, который вернет нам JSON с данными о том сколько человек взаимодействовало с конкретной указанной в ссылке FaceBook страницей.
Таким образом через ссылки можно взаимодействовать с Api Фейсбука.
Есть не один архитектурный стиль построения API – RPC
, SOAP
, REST
и другие. Мы будем рассматривать REST стиль, так как он самый популярный.
Отличительной особенностью REST AP
I от других стилей является то, что этот стиль лучше подходит для взаимодействия клиентского приложения с ресурсом (например с БД), который находиться на серверном приложении. То есть это как раз хорошо подходит для того чтобы клиент совершал CRUD
операции с ресурсом на сервере.
Как уже говорилось, обменивающиеся данными приложения могут быть написаны на разных языках, ГЛАВНОЕ чтобы они оба использовали REST
стиль и были в состоянии прочитать отправляемые друг другу данные.
JSON, Jackson
Самый популярный формат обмена данными сегодня это конечно же JSON
.
JSON – просто строка с данными.
Простой пример:
1{
2 "musician_name":"Behoven",
3 "isclassic": true,
4 "numofoperas": 150
5}
Как видим данные хранятся в JSON
в формате пар (то есть например “musician_name”:”Behoven” это одна пара) и их может прочитать и обработать любой язык программирования.
JSON строку можно превратить в Java объект и наоборот (это называется Data binding).
При конвертации JSON в Java объект пара превращается в поле в этом объекте. Левое значение в паре это имя поля объекта – правое это значение поля с таким именем.
То есть в обеъкте, который получиться по итогу конвертации JSON файла выше будет содержаться строковое поле с именем musician_name
и значением “Behoven”, будет содержать boolean поле с именем isclassic
и значением true и будет содержать числовое поле с именем numofoperas
и значением 150.
Jackson
– самое популярное средства для таких конвертаций.
При конвертации ИЗ JSON в объект вызываются нужные setter-ы объекта в который происходит конвертация, при конвертации А когда В JSON из объекта нужные getter-ы.
При создании класса объекта, который будет конвертироваться в JSON и наоборот, для успешной конвертации нужно называть геттеры/сеттеры в нем в соответствии с теми элементами пар JSON, что слева (например musician_name – setMusician_name()
, isclassic – setIsclassic()
…) иначе jackson не найдет getter/setter методы чтобы совершить конвертацию.
Содержимое запроса/ответа, коды статуса
HTTP запрос/ответ
– это набор данных.
HTTP запрос состоит из 3 частей:
- В Request line храниться название метода (POST,GET,…),
- Header Variables – доп. инф., например формат отправляемых данных (JSON,xml,…), размер данных и т.д.,
- Message Body – собственно отправляемый JSON или xml или др.
HTTP ответ отличается от запроса только первым элементом:
В HTTP ответе в Response line храниться код статуса ответа сервера (типа 404
– сервер сообщает этим кодом, что запрашиваемые клиентом данные не найдены на сервере (виноват клиент, что запросил несуществующие данные, поэтому это клиентская ошибка), или 200
– сервер сообщает в ответе этим кодом, что всё прошло успешно).
Вообще коды статуса ответа бывают такие:
100-199
инф-ые,200-299
– удача,300-399
– перенаправление,400-499
– ошибки на клиенте,500-599
– ошибки на сервере.
REST клиент
Чтобы сделать небольшой тест отправки HTTP запроса и получения HTTP ответа необходимо установить REST клиент
.
Скачаем программу Advanced REST Client по ссылке: https://www.advancedrestclient.com/.
REST клиент
это такое средство для тестирования REST приложения.
Допустим мы создали серверное REST приложение, которое принимает JSON от клиентского приложения и отправляет ему в ответ на этот JSON другой JSON.
И нам нужно протестировать этот механизм. То есть нам нужно какое-то средство для того чтобы отправить JSON в наше серверное REST приложение и прочитать ответ, который серверное REST приложение отсылает. Это средство и есть REST клиент.
Их есть много разных в интернете, но мы воспользуемся Advance REST Client.
Тестирование с помощью Rest Client
Отправим GET запрос по ссылке https://api.myip.com (это такой REST API для получения своего IP адреса в формате JSON).
В ARC выберем GET
запрос, вобьем ссылку куда будем делать запрос и нажмем send the request.

На картинке ниже можно увидеть все три элемента HTTP ответа – статус 200
, headers
и сам response
c нашим ip.

Это был пример обмена данными в формате JSON между двумя приложениями.
Одно клиентское – Advanced REST Client, другое серверное – https://api.myip.com
Следующие уроки
Первое Spring REST API-приложение
22
мин.
Создание REST API CRUD приложения
20
мин.
Spring Boot: в чём его сила и удобство?
22
мин.