API как продукт
OpenAPI, документация, SDK, версии, квоты, идемпотентность, вебхуки, повторная доставка, подписи событий и кабинет разработчика.
Материалы
- GraphQL: учебное API «Академия»
12 уроков: контракт course и query, выполнение без http и последовательное развитие проекта.
- Схема учебного GraphQL API
Контракт Course и Query, выполнение без HTTP.
- GraphQL: поля, псевдонимы и фрагменты
Выбор проекции и переиспользование набора полей.
- GraphQL: переменные и HTTP-запрос
JSON-конверт, имя операции и ограниченное тело POST.
- GraphQL: авторы и вложенные связи
Resolver Course.author и контекст запроса.
- GraphQL: запись на курс через mutation
Input, уникальность записи и ожидаемые доменные ошибки.
- GraphQL: Nullability и частичный результат
Nullable границы, GraphQLError и безопасное сообщение.
- GraphQL: пользователь и права доступа
Субъект из локальной демонстрационной сессии и политика enrollment.
- GraphQL: курсорная пагинация курсов
Connection, сортировка по ID и pageInfo без смещения.
- GraphQL: пакетная загрузка авторов
Один набор ID на запрос и кэш только в контексте операции.
- GraphQL: стоимость и пределы запроса
Проверка AST, максимальная глубина, ограничение полей и списков.
- GraphQL: развитие схемы без обрыва клиентов
Новое поле displayTitle, deprecated title и набор известных операций.
- GraphQL: клиент учебного каталога
Обработка data/errors, переменных и границы завершённого API.
- Платежи, подписки и платные функции
12 уроков проекта Пространство с полным локальным примером
- Биллинг: деньги, заказ и платёж в веб-приложении
Храним сумму в минимальных единицах и отделяем намерение купить от движения денег.
- Биллинг подписок: версия тарифа и неизменяемая цена заказа
Выбираем цену на сервере и сохраняем условия покупки отдельно от текущего каталога.
- Биллинг подписок: идемпотентное создание заказа
Связываем повтор команды с тем же результатом и отклоняем изменение её содержания.
- Биллинг подписок: адаптер провайдера и повтор создания платежа
Сохраняем платежное намерение до вызова и повторяем запрос с одним ключом.
- Биллинг подписок: переходы состояния платежа
Применяем подтверждённый снимок без повторной выдачи периода и отката успешного состояния.
- Биллинг подписок: входящее уведомление и повтор доставки
Используем уведомление как сигнал к чтению провайдера и сохраняем результат обработки.
- Биллинг подписок: сверка платежей после пропущенного уведомления
Читаем авторитетное состояние и восстанавливаем незавершённые локальные этапы.
- Подписка и границы календарного месяца
Сохраняем оплаченный интервал и календарный якорь для будущих продлений.
- Биллинг подписок: планировщик повторной оплаты
Создаём одно продление на границу периода и не повторяем списание при новом проходе.
- Биллинг подписок: отмена продления и незавершённого платежа
Отключаем будущую покупку отдельно от оплаченного периода и текущей попытки.