Swama: CLI-инструмент для работы с Swagger/OpenAPI
- вторник, 17 сентября 2024 г. в 00:00:07
Если вы работаете с API, вы наверняка сталкивались с OpenAPI или Swagger для описания ваших API-спецификаций. Хотя эти инструменты облегчают процесс документирования, порой работать с ними через графические интерфейсы или ручной просмотр YAML-файлов бывает неудобно и утомительно.
Здесь на помощь приходит Swama — CLI-инструмент, позволяющий взаимодействовать с API-спецификациями напрямую из терминала. Он упрощает просмотр, фильтрацию и тестирование ваших API с использованием Swagger или OpenAPI.
Swama — это командная утилита, созданная для взаимодействия со спецификациями Swagger/OpenAPI. Она позволяет:
Листать и просматривать все доступные API-эндпоинты.
Преобразовывать эндпоинты в команды curl
или fetch
для быстрого тестирования.
Фильтровать эндпоинты по HTTP-методу, тегам и путям.
Исследовать теги и серверы, указанные в спецификации API.
{todo} Редактирование данных и экспорт в yaml/json
{todo} Запус mock-сервера
{todo} Команды для отправки запросов на api
Список API-эндпоинтов: Получите полный список всех доступных API-методов и их путей.
Просмотр эндпоинтов: Подробно изучите каждый метод, его параметры, тело запроса и ответы.
Конвертация в curl
/fetch
: Преобразуйте эндпоинты в команды curl
или fetch
для быстрого тестирования.
Работа с тегами и серверами: Легко просматривайте и управляйте тегами и серверами в спецификации API.
Swama доступна как в виде предварительно собранных бинарных файлов, так и в виде исходного кода, который вы можете собрать самостоятельно.
Перейдите на страницу релизов и скачайте последнюю версию для вашей операционной системы.
Добавьте бинарный файл в переменную окружения $PATH
:
Linux/MacOS:
sudo mv swama /usr/local/bin/
sudo chmod +x /usr/local/bin/swama
Windows: Добавьте файл в системный PATH
для глобального доступа.
Вы также можете собрать Swama вручную:
git clone https://github.com/idsulik/swama
cd swama
go build -o swama
После установки Swama можно начинать взаимодействовать с вашими Swagger/OpenAPI файлами через командную строку.
Для того чтобы получить полный список всех эндпоинтов, используйте следующую команду:
swama endpoints list --file swagger.yaml
Вы также можете фильтровать эндпоинты по методу, тегам или конкретным путям:
swama endpoints list --method GET --tag user
# если не указан "--flag", то будет сделана попытка найти файл в текущей директории
Чтобы получить подробную информацию о конкретном эндпоинте, включая HTTP-метод, тело запроса и возможные ответы, используйте команду:
swama endpoints view --endpoint /user --method GET
Одной из ключевых функций Swama является возможность конвертации эндпоинтов в команды curl
или fetch
для тестирования:
swama endpoints convert --file swagger.yaml --endpoint /api/users --method POST --type curl
Общая информация о Swagger/OpenAPI файле
Команда info позволяет быстро получить основную информацию о вашем Swagger/OpenAPI файле, такую как версия, заголовок и описание API.:
swama info view
Список серверов
Команда servers list
выводит список всех серверов, определенных в Swagger/OpenAPI файле, включая их URL и описание. Это может быть полезно, если у вас есть несколько окружений, таких как тестовое, staging или production:
swama servers list
Список тегов
Теги в API используются для группировки эндпоинтов. Команда tags list
выводит все теги, указанные в спецификации API:
swama tags list
Swama поддерживает автодополнение для командной строки, что позволяет ускорить работу с инструментом. Чтобы включить автодополнение, выполните следующие команды:
Bash:
swama completion bash > /etc/bash_completion.d/swama
Zsh:
swama completion zsh > ~/.zsh/completion/_swama
Swama значительно упрощает работу с API-спецификациями. Теперь, вместо того чтобы вручную искать нужные эндпоинты в Swagger UI или постоянно писать команды curl
, вы можете сделать всё это прямо из вашего терминала.
p.s. напишите в комментариях свои идеи, как можно улучшить инструмент, чтобы он стал еще удобнее и полезнее. Спасибо!