Спецификации
Храните документы OpenAPI и файлы .proto в рабочем пространстве, смотрите их структуру и проблемы и превращайте их в запросы.
Страница «Спецификации» — это место, где вы проектируете и храните контракт API: документы OpenAPI (OpenAPI 3.0 и 3.1 и
Swagger 2.0) и файлы .proto сервисов gRPC. Echolot проверяет спецификацию по мере правки, превращает её в запросы,
которые остаются с ней в согласии, и обслуживает её как мок, пока самого API ещё нет.
Откройте её через Спецификации в переключателе разделов боковой панели или нажмите ⌘3.

Спецификации в рабочем пространстве
Спецификации — это файлы в папке specs рабочего пространства, поэтому они попадают в Git вместе со всем остальным. В
примере Alpenglow их три: alpenglow.yaml (документ OpenAPI магазина), shop.graphql и inventory.proto. Страница
«Спецификации» перечисляет документы OpenAPI в разделе Спецификации, а файлы .proto — в разделе Proto-файлы.
Схемы GraphQL в этой папке используются запросами GraphQL и здесь не перечисляются.
Кнопка + в заголовке Спецификации боковой панели добавляет спецификацию:
| Пункт | Что делает |
|---|---|
| Новая спецификация | Создаёт документ OpenAPI 3.1 с названием New API и открывает его в визуальном редакторе. |
| Новая спецификация из ответов… | Пишет спецификацию по отправленным вами запросам и полученным ответам. См. Спецификация из ответов. |
| Добавить файл спецификации… | Копирует документ OpenAPI или Swagger (YAML или JSON) с вашего Mac в папку specs. |
| Новый proto-файл | Создаёт файл .proto на основе небольшого примера сервиса. См. файлы .proto. |
| Добавить proto-файл… | Копирует файл .proto в папку specs. |
Импорт документа OpenAPI командой Файл › Импортировать… — другое дело: он создаёт из документа запросы, а не спецификацию, которую можно править.
Щёлкните спецификацию правой кнопкой, чтобы выбрать Создать запросы, Показать в Finder, Экспорт (В YAML… или В JSON…) и Удалить…. Удаление сначала спрашивает разрешения и перемещает файл в Корзину; файлы, на которые он ссылается, остаются, как и его моки.
Структура
Щёлкните спецификацию, чтобы открыть её. Под списком боковая панель показывает её структуру:
- Обзор: название, версия и описание.
- ЭНДПОИНТЫ: каждая операция с методом и путём. Устаревшие зачёркнуты. Наведите указатель на операцию, чтобы увидеть её сводку.
- СХЕМЫ: переиспользуемые схемы.
- Файлы, если спецификация ссылается на другие файлы (см. Спецификации из нескольких файлов).
Щёлкните элемент, чтобы открыть его: в визуальном редакторе открывается и прокручивается в поле зрения его карточка, в коде редактор переходит на его строку.
Визуально и код
Переключатель Редактор в заголовке страницы выбирает, как вы видите открытую спецификацию:
- Визуально: карточки обзора, серверов, эндпоинтов и схем, которые правятся полями и меню.
- Код: документ в виде YAML или JSON, с номерами строк.
Оба режима правят один и тот же текст, и Echolot сохраняет его вскоре после каждого изменения. Оба описаны в разделе Правка спецификации.
Проблемы
Echolot проверяет спецификацию линтером по мере правки. Панель над редактором показывает Проблем нет либо число ошибок и предупреждений. Красное число ошибок стоит и рядом с открытой спецификацией в боковой панели.

Щёлкните его, чтобы увидеть список: сначала ошибки, затем предупреждения и подсказки, у каждого своя строка. Выберите проблему, чтобы перейти на эту строку. Если список пуст, там написано, что документ соответствует спецификации OpenAPI и все ссылки разрешаются.
Что, среди прочего, проверяет линтер:
- Версию
openapi, которую понимает Echolot,infoс названием и версией и пути, начинающиеся с/. - Параметры пути, которые есть в пути и помечены
required: true, и параметры, которые не определены дважды. - Описание у каждого ответа и идентификаторы операций, которые встречаются один раз.
- Теги, объявленные наверху, определённые схемы безопасности, массивы с
itemsи перечисления со значениями. - Ссылки, которые на что-то указывают, в этом файле или в другом файле из
specs. - Отсутствие
servers: тогда созданные из спецификации запросы начинаются с{{baseUrl}}, которую вы задаёте сами.
Утилита командной строки запускает тот же линтер в CI: см. echolot spec.
Спецификации из нескольких файлов
Спецификация может подключать части других файлов через $ref, например $ref: schemas/pet.yaml#/Pet. Файлы должны
находиться внутри папки specs рабочего пространства. Боковая панель перечисляет их в разделе Файлы: щёлкните
файл, чтобы открыть его в режиме Код. В редакторе кода наведите указатель на $ref, чтобы увидеть, на что он
указывает, и щёлкните по нему с нажатой клавишей ⌘, чтобы перейти туда, в этом файле или в другом.
Echolot читает части вместе везде, где использует спецификацию: в линтере, при создании запросов, в моках. При экспорте спецификации файлы, на которые она ссылается, записываются в один сохраняемый вами файл.
Экспорт
Экспорт на панели над редактором (Экспортировать как YAML… или Экспортировать как JSON…) сохраняет спецификацию одним файлом вне рабочего пространства, записывая в него файлы, на которые она ссылается. Несохранённые правки сначала сохраняются, так что экспорт — это то, что показывает редактор.
Запросы, которые следуют спецификации
Создать запросы на панели над редактором создаёт папку с названием спецификации и запросом для каждого эндпоинта и открывает первый. Папка следует спецификации: когда спецификация меняется, можно применить изменения к её запросам, не потеряв того, что вы в них правили.
Когда папка следует спецификации, кнопка превращается в Запросы — меню с пунктом Проверить изменения для «папка»… для каждой папки, которая ей следует, и пунктом Создать ещё одну папку. Проверка открывает Синхронизацию OpenAPI, где перечислено, что Новое в спецификации, Изменено в спецификации и Удалено из спецификации. Отметьте нужные изменения и нажмите Применить 1 изменение (или Применить 3 изменения и так далее). Ваши правки всегда остаются; если вы и спецификация изменили одно и то же, сохраняется ваш вариант. Когда операция исчезла, её запрос перемещается в Корзину, если только вы его не правили: тогда он остаётся и перестаёт следовать спецификации. Отвязать прекращает следование папки спецификации и оставляет её запросы как есть.
Папка может следовать и спецификации вне рабочего пространства — файлу или URL: щёлкните папку в боковой панели
«Запросы» правой кнопкой и выберите Связать со спецификацией OpenAPI…. Утилита командной строки проверяет и
применяет изменения командами echolot spec check и echolot spec apply.

