Echolot
Спецификации

Спецификация из ответов

Создание спецификации OpenAPI по отправленным вами запросам и полученным на них ответам.

Запросы у вас часто появляются раньше спецификации: коллекция, которую кто-то импортировал, или вызовы, которые вы пробовали, знакомясь с API. Спецификация из ответов превращает их в документ OpenAPI. Каждый запрос становится операцией, описанной по последнему полученному на него ответу: путь и параметры, отправленное тело, а также ответ со схемой JSON Schema его тела и примером. Добавляйте в уже существующую спецификацию, и она получит только то, чего ей не хватало.

Описание папки

Отправьте запросы, которые нужно описать, чтобы у каждого был ответ. В Alpenglow, например, отправьте запросы из папки Catalog.

Щёлкните папку в боковой панели «Запросы» правой кнопкой и выберите Описать в спецификации OpenAPI…. Чтобы описать всё рабочее пространство, выберите + › Новая спецификация из ответов… в боковой панели «Спецификации», Из ответов… на пустой странице «Спецификации» или Новая спецификация из ответов… в палитре команд.

В листе Описать в спецификации OpenAPI проверьте варианты:

ВариантЧто значит
ЗапросыВсё рабочее пространство или одна папка. Запросы её подпапок включаются.
СпецификацияНовая спецификация или спецификация рабочего пространства, в которую нужно добавить. Папка, которая уже следует спецификации, добавляет в неё.
НазваниеНазвание новой спецификации. Сначала это название папки или рабочего пространства.
Связать «папка» со спецификациейПо умолчанию включено. Запросы папки тогда следуют операциям, которыми стали, так что позднейшие изменения спецификации можно применять к ним.

Нажмите Описать. Лист сообщит, что произошло, а Открыть спецификацию откроет результат.

Лист «Описать в спецификации OpenAPI» после описания папки Catalog: новые операции, не вошедшие запросы с причинами и кнопка «Открыть спецификацию»

Что получится

В результате перечислено:

ЗаголовокЧто значит
Новые операцииОперации, которых в спецификации не было, например GET /products/{sku}.
Добавлен ответОперации, которые в ней были и теперь описывают ещё один ответ, например 404.
Уже описаныОперации, которые она уже описывала так, как на них ответили. Ничего не изменилось.
Не вошлоЗапросы, которые не были описаны, у каждого указана причина.

Там же сказано, сколько запросов теперь следуют своим операциям и сколько ошибок линтер находит в результате, если находит.

Что попадает в каждую операцию:

  • Путь в форме OpenAPI: сегменты пути, пришедшие из переменных, становятся параметрами пути, описанными с отправленными значениями. Серверная часть URL в путь не входит.
  • Параметры запроса и заголовки, которые задаёт запрос.
  • Тело запроса и ответ со схемой JSON Schema, созданной по телу, и примером. Большие примеры опускаются, а схема остаётся; в длинных массивах пример сохраняет несколько элементов.
  • имя запроса как сводка операции, а его подпапка как тег операции.
  • Авторизация запроса как схема безопасности. Если в OpenAPI для неё нет схемы (OAuth 2 с типом предоставления device code), об этом сообщает примечание.

Секреты скрываются: секретные переменные и значения под ключами, похожими на секретные (токены, пароли, ключи), выглядят в примерах как ••••••.

Добавление в существующую спецификацию

Выберите спецификацию в поле Спецификация. Echolot добавляет только то, чего не хватает: операции, ответы, схемы и схемы безопасности, которые в ней ещё не названы. То, что в спецификации уже сказано, остаётся как написано. Спецификации в Swagger 2.0 дополнять нельзя; только документы OpenAPI 3.

Описание отдельных ответов из истории

В Истории щёлкните правой кнопкой HTTP-обмен, на который пришёл ответ, и выберите Добавить в спецификацию OpenAPI…. Откроется тот же лист, но для одного этого ответа. Это удобно для ответа, который вы увидели один раз, например ошибки.

Что не вошло

  • Запросы не HTTP (GraphQL, gRPC, WebSocket и прочие): в OpenAPI описываются только HTTP-запросы.
  • Запросы, на которые ещё нет ответа: сначала отправьте их.
  • Запросы, отправка которых завершилась ошибкой до получения ответа.
  • Запросы в подпапке, которая следует собственной спецификации.

Поддержание актуальности

Когда папка следует спецификации, контрактом становится спецификация. Правьте её на странице «Спецификации» и применяйте изменения к запросам через Проверить изменения для «папка»…. См. Запросы, которые следуют спецификации. Ответы спецификации можно также отдать моку, чтобы фронтенд мог работать с ней.

Агенты могут делать то же через инструмент add_to_spec, когда включён набор инструментов Спецификации: см. Агенты.

На этой странице