echolot spec
Проверяйте документы OpenAPI линтером в CI и поддерживайте папку, следующую за спецификацией, в актуальном состоянии.
echolot spec приносит в терминал две вещи со страницы «Спецификации»: линтер и связь между
спецификацией и папкой запросов, созданных по ней.
| Подкоманда | Что делает |
|---|---|
echolot spec lint | Проверяет документ OpenAPI или Swagger линтером; завершается с кодом 1, если в нём есть ошибки (или предупреждения, с --strict). |
echolot spec check | Перечисляет, что изменилось в спецификации, за которой следует папка; завершается с кодом 1, если папка не актуальна. |
echolot spec apply | Применяет изменения спецификации к папке, сохраняя правки, сделанные в рабочем пространстве. |
echolot spec lint
echolot spec lint <file> [--strict] [--hints]<file> — это спецификация, YAML или JSON. Файлы, на которые она ссылается через $ref, читаются из соседних с ней.
echolot spec lint Alpenglow.echolot/specs/alpenglow.yaml0 errors, 0 warnings.Каждая проблема — одна строка в стандартном выводе: файл, строка и столбец, серьёзность, сообщение и правило в скобках, чтобы на неё могли указать редакторы и CI. Итоговое число идёт в стандартный поток ошибок:
api.yaml:2:1: error: info needs a version (of the API, such as 1.0.0). [info]
api.yaml:7:7: error: GET /x documents no responses. [responses]
api.yaml:6:5: hint: GET /x has no operationId; code generators and agents name it from one. [operation-id]
2 errors, 0 warnings.| Параметр | Значение |
|---|---|
--strict | Считать неудачей и предупреждения. |
--hints | Также перечислить подсказки: хорошие практики, например operationId и описания. Подсказки никогда не считаются неудачей. |
Правила те же, что на странице «Спецификации»; см. редактирование спецификаций.
echolot spec check
echolot spec check [--workspace <workspace>] <folder> [--refresh]Папка, созданная импортом спецификации или связанная с ней в приложении, следует за этой спецификацией. check
сравнивает папку со спецификацией в её нынешнем виде и перечисляет каждую операцию, которая была added, changed (с
полями) или removed. Если изменение касается того, что вы правили в рабочем пространстве, об этом сказано: такие
правки сохраняются.
echolot spec check -w Shop.echolot petsadded POST /pets
changed GET /pets/{id} (parameters, responses)
removed DELETE /pets/{id}
3 changes, 12 unchanged.| Параметр | Значение |
|---|---|
-w, --workspace <folder> | Папка рабочего пространства. По умолчанию — текущая папка. |
--refresh | Сначала заново загрузить спецификацию по её URL. |
<folder> — путь к связанной папке, например pets. Используйте check в CI, чтобы сборка падала, когда запросы
отстали от спецификации.
echolot spec apply
echolot spec apply [--workspace <workspace>] <folder> [--operation <operation> ...]Записывает изменения спецификации в папку: новые операции становятся запросами, изменённые обновляются, удалённые удаляются. То, что вы правили в запросе, сохраняется. Запрос, который вы правили и чьей операции в спецификации больше нет, тоже остаётся и перестаёт следовать за спецификацией. Каждая строка говорит, что произошло:
added pets/create-pet
updated pets/get-pet kept edits to headers
removed pets/delete-pet| Параметр | Значение |
|---|---|
-w, --workspace <folder> | Папка рабочего пространства. По умолчанию — текущая папка. |
--operation <operation> | Только эта операция, например "GET /pets". Можно повторять; если не указано — все изменения. |
Коды выхода
| Код | Когда |
|---|---|
0 | lint: нет ошибок (и нет предупреждений, с --strict). check: папка актуальна. apply: применено. |
1 | lint: ошибки или предупреждения с --strict. check: есть изменения, которые нужно применить. |
64 | Неверный параметр или папка, которая не следует за спецификацией. |