Aheadly

Для команд, чей код зависит от чужих API

Чужие API меняются. Aheadly показывает, какие строки чинить.

Aheadly следит за внешними API, которые вызывает твой код. Когда в них меняется метод или поле, приходит задача с файлами, строками и датой вступления. Песочница заранее отвечает по-новому, и тест падает ещё до релиза.

Бесплатно для одного API Код не уходит из твоего CI
OrderSync.javamain · пример
38public void addToSupply(long supplyId, long orderId) {
39 var body = Map.of("orderIds", List.of(orderId)); var body = new SupplyOrders(orderId, warehouseId);
40 client.patch()
41 .uri("/api/v3/supplies/{s}/orders/{o}", supplyId, orderId)
42 .bodyValue(body)
43 .retrieve()
44 .toBodilessEntity()
45 .block();
46}
Ломающее изменениестрока 41

С 1 декабря этот метод требует поле warehouseId

до вступления 23 дня

Работает с

WildberriesOzonЯндекс МаркетЮKassaCloudPaymentsТ-КассаСДЭКСвой OpenAPI

Свой API добавляется по ссылке на описание OpenAPI.

Польза

Меньше пожаров из-за чужих релизов

Обычно о сломанной интеграции узнают из жалобы клиента. С Aheadly ты узнаёшь в день анонса и чинишь в своём темпе.

Задача приходит в день анонса

Aheadly читает журналы изменений и сравнивает описания API с прошлой версией несколько раз в день. Изменение приходит вместе с датой, когда оно вступит в силу.

анонс 8 ноября1 декабря

В задаче уже есть адрес

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

OrderSync.java:41SupplyClient.java:88

Тест падает до релиза

Песочница включает будущее поведение API заранее. Код, который сломается первого числа, перестаёт проходить тесты уже сегодня.

2 теста из 3 падают в режиме 1 декабря

Код и ключи остаются у тебя

Сканер работает в твоём CI и отправляет только список вызовов. Ключи от рабочих кабинетов Aheadly не просит вообще.

{ "operation": "PATCH /api/v3/supplies/…",
  "file": "OrderSync.java", "line": 41 }

Как работает

Подключаешь один раз, дальше Aheadly следит сам

терминал CI

$ aheadly scan --project shop-syncпросмотрено 412 файлов за 6,8 снайдено 37 вызовов внешних API в 12 файлахне распознано 2 места, подробнее: aheadly scan --unresolvedкарта отправлена, код остался в CI

Песочница

Песочница ведёт себя как настоящий API

Официальные тестовые среды проверяют формат запроса. Песочница Aheadly повторяет и поведение. Сценарий включается переключателем в кабинете или заголовком прямо в тесте.

Нажми на сценарий, чтобы проиграть его.

sbx.aheadly.dev/p/demo

    Цены

    Платишь, когда Aheadly начинает экономить время

    Старт

    0 ₽навсегда

    Для одного API и одного проекта

    • Лента изменений одного API
    • Уведомления в Telegram
    Начать бесплатно

    Агентство

    5 900 ₽в месяц

    Для студий, которые ведут интеграции клиентов

    • До 20 клиентских проектов
    • Отчёт для каждого клиента с твоим логотипом
    • Всё, что есть в тарифе Команда
    • Отдельный канал поддержки

    Вопросы

    Что обычно спрашивают

    Мой код уходит в Aheadly?

    Нет. Сканер работает в твоём CI и отправляет список вызовов. Это метод, файл и номер строки. Пути к файлам можно скрыть, тогда адреса покажет команда aheadly explain у тебя на машине.

    Откуда Aheadly знает об изменениях?

    Aheadly несколько раз в день скачивает описания API, сравнивает их с прошлой версией и читает журналы изменений. Каждое найденное изменение проверяет человек, прежде чем оно уйдёт клиентам.

    Чем это лучше подписки на каналы сервисов?

    Канал сообщает, что поменялось. Aheadly добавляет, где это у тебя в коде, создаёт задачу и даёт проверить исправление в песочнице до даты вступления.

    Моего API нет в списке

    Дай ссылку на описание OpenAPI, и Aheadly начнёт следить за ним в тот же день. Сервисы без OpenAPI добавляем по запросам.

    Что если сканер не нашёл вызов?

    Сканер показывает места, которые не смог распознать. Такое место подписывают строкой-подсказкой в коде или перечисляют в файле aheadly.yml. Ещё Aheadly дополняет карту запросами, которые тесты отправили в песочницу.

    Где хранятся данные?

    На серверах в России, этого требует 152-ФЗ для персональных данных. Aheadly хранит карту вызовов, участников команды и настройки уведомлений. Код проекта Aheadly не хранит.

    Следующее изменение API не застанет тебя врасплох

    Подключение занимает около десяти минут. Первая задача придёт с ближайшим изменением в API, которые вызывает твой код.