Bruno - новый клиент для API (Замена PostMan Insomnia)
-
Наша команда, как и многие другие, использовала Postman в качестве предпочтительного клиента REST API. Это помогло оптимизировать и упростить процесс взаимодействия, отладки и тестирования наших конечных точек и конечных точек третьих сторон, с которыми мы работали.
К сожалению, когда Postman перешел на облачную модель, это сильно ограничило возможности работы без облачной учетной записи (которую нам не разрешили использовать из-за ограничений компании из-за рисков безопасности).
Это положило начало поиску новой альтернативы. Мы и не подозревали, что в конечном итоге найдем что-то, что в конечном итоге будет лучше соответствовать нашим потребностям и рабочему процессу.
Критерии поиска
Наш путь начался, когда переход Postman к облачной модели побудил нас искать альтернативу, которая более точно соответствовала бы нашим требованиям:
-
Поддержка нескольких коллекций: необходима для эффективной организации запросов API.
-
Переменные окружения: Обязательная функция для плавного переключения между средой разработки и производством.
-
Возможности написания сценариев: Очень желательно для использования ответов между конечными точками и добавления логики в наши процессы.
-
Локальная поддержка: Неотъемлемый атрибут, гарантирующий отсутствие зависимости от облачного хранилища или внешних серверов.
-
Рентабельный: Свободный доступ был критически важным фактором, учитывая логистические проблемы, связанные с получением разрешения на закупки для всей команды.
-
Синхронизация команды: В идеале это должно быть решение, облегчающее обмен и обновление коллекций между членами команды. Это было очень приятно. Мы использовали бесплатный уровень Postman, поэтому мы передавали экспортированные файлы для обмена коллекциями между коллегами. Это приводило к рассинхронизации коллекций и доставляло много хлопот в обслуживании. Это была не единственная команда, с которой я столкнулся с этим, поэтому я действительно хотел найти решение, которое упростило бы эту задачу в будущем.
Претенденты
Наша оценка включала в себя несколько перспективных инструментов, каждый из которых имеет свои уникальные сильные и слабые стороны:
Insomnia
Сильный конкурент Postman, который раньше был моим предпочтением, но после обновления он также требовал доступа к облачной учетной записи, аналогичной Postman, и сильно ограничивал использование приложения только локально. (С тех пор я не возвращался, чтобы опробовать его, но, похоже, они отменили это решение.)
Thunder Client
Благодаря тому, что он был встроен в VS Code, вам не нужно было покидать интегрированную среду разработки, но он поддерживал только VS Code, который используют не все в нашей команде. Уровень “Бесплатный” позволяет выполнять только 50 запросов на коллекцию, что также означало бы, что нам пришлось бы разбивать наши коллекции.
Почему Bruno?
Бруно оказался явным победителем в нашем поиске. И вот почему:
-
Обширный набор функций: Bruno предлагает множество функций, от нескольких коллекций и переменных среды до возможностей сценариев, без ущерба для пользовательского опыта.
-
Мультиплатформенная поддержка: Существует несколько способов использования Bruno, включая классическое приложение, интерфейс командной строки и расширение VS Code; Мы делаем счастливыми всех членов нашей команды, независимо от их предпочтений.
-
Универсальная поддержка импорта: Мы могли бы легко импортировать наши коллекции Postman и окружающую среду в Bruno. Он также поддерживает импорт коллекций Insomnia и спецификаций OpenAPI v3.
Но то, что действительно выделялось, это:
-
Совместная работа в команде: В отличие от нашего предыдущего подхода к Postman, Git-дружественный характер Бруно оптимизирует обмен коллекциями и обновлениями, способствуя лучшему сотрудничеству в команде. Платный уровень не нужен, и больше не нужно передавать файлы экспорта туда и обратно!
-
Локальный, с открытым исходным кодом и бесплатный: приверженность Бруно локальной поддержке и открытому исходному коду идеально соответствует принципам нашей команды и логистическим ограничениям.
Вопросы
Как Бруно управляет коллекциями?
После того как вы укажете Бруно папку, он автоматически организует ваши коллекции в виде вложенных папок внутри нее, а запросы API — в виде обычных текстовых файлов. Вы можете настроить эту папку в качестве репозитория Git, чтобы вы и ваша команда могли управлять ею с помощью системы управления версиями. Любой другой член вашей команды, который хочет использовать вашу коллекцию, может просто клонировать репозиторий и открыть коллекцию в Bruno.
В качестве примера можно ознакомиться с примером репозитория Bruno.
Если он управляется в Git, как предотвратить фиксацию секретов?
При использовании переменных среды в Bruno вы можете столкнуться с конфиденциальными данными, такими как секреты, которые не должны предоставляться в репозитории. Чтобы защитить их, убедитесь, что вы пометили их как «Секретные» в Bruno. Это действие сигнализирует Бруно о том, что он должен обращаться с этими секретами конфиденциально, гарантируя, что они не будут записаны в текстовых файлах, тем самым обеспечивая безопасность вашей конфиденциальной информации.
Заключение
Bruno выделяется как API-клиент, который предлагает хорошее сочетание функциональности, совместной работы и удобства для пользователя. Для любой команды, стремящейся улучшить свои процессы разработки и тестирования API, Bruno является привлекательным выбором, который стоит рассмотреть.
-
-
-
@Jspi На данный момент плохо работает в wsl2, вылетает ошибки при переименовании запросов, игнорирования папок не работает, в итоге он в коллекциях показывает и git папку и node_modules.
Поэтому советую вот что: если вы пользуетесь wsl, то лучше разворачивать проект не в wsl а в родительской ОС (windows)