Что такое REST API?

«Что такое REST API?» — вопрос из категории Сети, который задают на 23% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

REST API (Representational State Transfer Application Programming Interface) — это архитектурный стиль для построения веб-сервисов, использующий стандартные протоколы и методы HTTP.

Ключевые принципы REST:

  1. Единообразие интерфейса: Взаимодействие строится вокруг ресурсов (сущностей, например, пользователь), идентифицируемых URI (например, /api/users/123).
  2. Stateless (без состояния): Каждый запрос от клиента должен содержать всю информацию, необходимую для его обработки. Сервер не хранит состояние сессии клиента.
  3. Использование HTTP-методов: Стандартные операции CRUD (Create, Read, Update, Delete) выполняются соответствующими методами:
    • GET — получение ресурса.
    • POST — создание ресурса.
    • PUT / PATCH — полное или частичное обновление.
    • DELETE — удаление ресурса.
  4. Репрезентации ресурсов: Данные передаются в стандартных форматах, чаще всего JSON или XML.

Пример HTTP-запроса (Java с HttpClient):

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.example.com/users/1"))
        .header("Accept", "application/json")
        .GET()
        .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body()); // JSON с данными пользователя

Преимущества: Простота, масштабируемость, кэшируемость, независимость от клиентской платформы.