JavaRush /Курсы /Модуль 3: React /Введение в работу с API в мобильных приложениях — REST и ...

Введение в работу с API в мобильных приложениях — REST и GraphQL

Модуль 3: React
24 уровень , 0 лекция
Открыта

Введение

API — это интерфейс, через который наше приложение может общаться с внешними источниками данных, будь то серверы, базы данных или сторонние сервисы. Без API ваш мобильный проект будет стоять на месте, как заблокированный смартфон. Вот что делает API незаменимым:

  1. Динамичность и интерактивность. Пример — приложение для новостей. Оно будет получать актуальные данные через API.
  2. Отделение логики. Все "умные" вещи (например, обработка больших данных, аутентификация) происходят на сервере. Мобильное приложение занимается отображением данных.
  3. Масштабируемость. Изменения на стороне сервера не требуют обновления приложения у пользователей, достаточно обновить API.

Представьте, что ваш API — это курьер, который передает вашему приложению посылки с данными. Главное, чтобы курьер умел читать ваши инструкции и доставлял правильные посылки (GET). Иногда вы можете отправлять запросы (POST), иногда изменять что-то уже отправленное (PUT), а иногда удалять посылки (DELETE).

REST и GraphQL: кто есть кто?

Теперь давайте разберемся, как API выглядит и как оно может поставлять данные вашему приложению. На сцене два главных актера — REST и GraphQL. Оба они предоставляют способ запрашивать и отправлять данные, но делают это по-разному.

REST: привычный способ

REST (Representational State Transfer) — это архитектурный стиль (не путать с фреймворками), основанный на ресурсах. Каждый ресурс (например, "пользователь", "заказ", "товар") представлен уникальным URL, и взаимодействие с ним происходит через HTTP-методы.

Пример работы REST API:

GET /users/1
{
  "id": 1,
  "name": "Алиса",
  "email": "alice@example.com"
}
  • Методы запросов:
    • GET: получение данных.
    • POST: отправка новых данных.
    • PUT: изменение существующих.
    • DELETE: удаление.

Плюсы REST:

  • Простота и четкая структура.
  • Широкая поддержка и стандартность.

Минусы REST:

  • Иногда возвращает ненужную лишнюю информацию.
  • Для сложных запросов может потребоваться множество вызовов API.

GraphQL: современный подход

GraphQL — это язык запросов, который придумали в Facebook в 2015 году. Главная его сила — в гибкости. С GraphQL вы сами описываете, какие данные вам нужны, и получаете ровно их — не больше и не меньше.

Пример работы GraphQL API:

query {
  user(id: 1) {
    id
    name
    email
  }
}

Ответ:

{
  "data": {
    "user": {
      "id": 1,
      "name": "Алиса",
      "email": "alice@example.com"
    }
  }
}
  • Основные концепции:
    • Query: запрос данных.
    • Mutation: изменение данных.
    • Subscriptions: возможность получать обновления в реальном времени.

Плюсы GraphQL:

  • Вы сами определяете, какие данные вам нужны.
  • Один запрос вместо нескольких.
  • Можно запрашивать данные с разных источников в одном запросе.

Минусы GraphQL:

  • Больше сложностей в настройке.
  • Возможны проблемы с кэшированием.

Таблица сравнения REST и GraphQL

Характеристика REST GraphQL
Гибкость запросов Фиксированные ресурсы Полная кастомизация
Работа с данными Лишние данные (оверфетч) Только нужные данные
Множество вызовов Да Нет, один запрос
Простота Очень прост в использовании Требует обучения
Инструменты Много готовых решений Реже, но активно развиваются

Архитектурные паттерны и протоколы API

Архитектура клиент-сервер

В мобильных приложениях логика делится на клиентскую (React Native) и серверную части (API). Клиент не знает, где и как сервер хранит данные, а сервер не беспокоится о том, как клиент эти данные визуализирует.

Протоколы HTTP/HTTPS

Протокол HTTP — это основа работы REST и GraphQL. Они используют методы, такие как:

  • GET (получение данных),
  • POST (отправка данных),
  • PUT (обновление данных),
  • DELETE (удаление).

А HTTPS — это тот же HTTP, но с использованием SSL/TLS для защиты данных. Если ваш API отправляет конфиденциальные данные, HTTPS обязателен.

Примеры использования API в мобильных приложениях

Пример 1: приложение для погоды (REST)

Ваше приложение отправляет запрос GET /weather?city=London, чтобы получить погоду в Лондоне. API возвращает JSON с информацией о температуре, влажности и прогнозе осадков.

Пример 2: приложение для социальных сетей (GraphQL)

Вы хотите загрузить ленту новостей и количество лайков для каждого поста. GraphQL позволяет запросить только нужные поля: тексты постов, картинки и количество лайков, а не описание автора или другие лишние данные.

Как выбрать между REST и GraphQL?

  • Используйте REST, если:

    • Ваш API простой и поддерживает стандартные операции (CRUD).
    • Вы хотите стабильное решение с минимальной настройкой.
    • Удобный кэш и стандартные программные интерфейсы.
  • Выберите GraphQL, если:

    • Вам нужна гибкость в запросах.
    • Вы хотите минимизировать количество запросов к API.
    • Несколько источников данных должны быть объединены без лишних вызовов.
2
Задача
Модуль 3: React, 24 уровень, 0 лекция
Недоступна
Простое использование REST API
Простое использование REST API
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ