Создание и проверка вызова API

Через вызовы API приложение общается с внешними сервисами: получает свежие данные и пользуется чужой функциональностью. Разберём, как создать такой вызов и проверить его прямо в конструкторе.

Создание вызова

Откройте API Calls в левом меню, нажмите + Add и выберите Create API Call. Задайте API Call Name, выберите Method Type (GET, POST, DELETE, PUT или PATCH) и укажите адрес сервиса.

совет
Методы

Метод определяет, что именно делает запрос:

  • GET — получить данные с сервера.
  • POST — отправить данные, создать ресурс.
  • DELETE — удалить ресурс.
  • PUT — заменить ресурс целиком.
  • PATCH — изменить часть ресурса.

Динамические адреса

Часть адреса может меняться: https://reqres.in/api/users/2, где 2 — идентификатор пользователя, или https://reqres.in/api/users?page=5, где 5 — номер страницы.

  1. Замените жёстко заданное значение осмысленным именем в квадратных скобках: https://reqres.in/api/users/[user_id].
  2. Создайте переменную с тем же именем.

Дальнейшие шаги зависят от выбранного метода.

Запросы GET и DELETE

  1. Если запросу нужны заголовки — скажем, токен авторизации, — добавьте их.
  2. Если нужны параметры запроса — номер страницы, идентификатор, — добавьте их.
  3. Нажмите Add Call.
внимание

После любых изменений вызов нужно сохранить.

В примере выше запрос GET получает данные пользователей с REQ | RES — сервиса с тестовым REST API.

А вот тот же запрос с динамическим адресом:

Как его собрать:

  1. Замените жёстко заданное значение именем в скобках: https://reqres.in/api/users/[user_id].
  2. Создайте переменную с тем же именем.

Запрос DELETE описывается так же — отличается только выбранный Method Type.

Запросы POST, PUT и PATCH

  1. Если запросу нужны заголовки, добавьте их.
  2. Опишите тело запроса.
  3. Нажмите Add Call.
внимание

После любых изменений вызов нужно сохранить.

В примере запрос POST использует две переменные — userName и userJob, — которые подставляются в тело запроса JSON.

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

Группы вызовов

Вызовы с общим базовым адресом объединяют в группу. Заголовки — например, токен авторизации — задаются один раз на всю группу и подставляются в каждый вызов.

внимание

Для приватных API заголовки группы не подставляются: их нужно задавать вручную для каждого такого вызова.

Как создать группу:

  1. Нажмите + слева вверху и выберите Create API Group.
  2. Задайте API Group Name.
  3. Укажите API Base URL — общую часть адреса. Слэш в конце не нужен.
  4. Кнопкой + Add Header добавьте заголовки — подробнее о них.
  5. Нажмите Add Group — группа появится в списке слева.
  6. Откройте её и нажмите + Add API Call.
  7. Опишите вызов как обычно, указав в адресе только ту часть, что идёт после базового URL.

Импорт описаний API

Описания вызовов можно импортировать пачкой из Swagger/OpenAPI — вместо того чтобы заводить десятки запросов руками.

Заодно это избавляет от опечаток, которые при ручном вводе неизбежны.

инфо

Из файла подтягиваются и настройки, нужные для работы вызова: заголовки, параметры запроса, переменные и тело. Жёстко заданные значения в теле запроса при этом стоит заменить на переменные.

внимание

API, описанные по стандарту OAS 2.0, импортируются, но могут потерять тело запроса. Импорт рассчитан на OAS 3.0 — с ним результат предсказуемее.

Как импортировать:

  1. Нажмите значок Import OpenAPI.
  2. Нажмите Upload File и загрузите файл в формате .yml или .json.
  3. После импорта все вызовы появятся в виде группы.

Пример массового импорта — файл взят отсюда.

Тестирование

Вызов стоит проверить до того, как он попадёт в приложение, — прямо в конструкторе.

  1. Выберите вызов и откройте вкладку Response & Test.
  2. Слева, в разделе Variables, задайте значения переменных.
  3. Справа, в разделе Preview, видно адрес, заголовки, тело запроса и ответ. Вкладка Test Response показывает ответ целиком: JSON, сырой текст и заголовки.
  4. Нажмите Test API Call. Появится статус запроса, а при успехе (код 200) — и полученные данные.
  5. К любому значению из ответа можно обратиться, задав JSON-путь.

Ниже — проверка создания пользователя запросом POST с переменными userName и userJob. Успешный запрос возвращает код 201.

инфо

Запросы PUT и PATCH проверяются так же.

Действие API Call

Описанные вызовы доступны везде, где нужны.

Откройте редактор действий на нужном виджете, выберите триггер, найдите в списке действий «API Calls» и укажите нужный вызов.

use-api-call.png

совет

Вызов можно добавить и как запрос к бэкенду — тогда он выполнится сам при загрузке страницы или виджета.

Порядок действий:

  1. Выделите виджет — например, кнопку.
  2. В панели свойств выберите Actions и нажмите Open — откроется редактор действий.
  3. Нажмите + Add Action.
  4. Найдите действие API Call (раздел Backend/Database).
    1. Выберите Group or Call Name.
    2. Если вызову нужны переменные — токен, параметры, идентификатор, — задайте их кнопкой + Variable.
    3. Action Output Variable Name — имя переменной с ответом. По умолчанию оно случайное; лучше заменить его на осмысленное, например loginResponse.
    4. Добавьте условное действие, проверяющее успех вызова.
    5. В ветке TRUE опишите, что делать при успехе: например, перейти на главную после входа.
    6. В ветке FALSE — что делать при ошибке: например, показать сообщение.

перевод официальной документации FlutterFlow

обновлено

ESC