Что вы должны знать перед тем, как приступить к реализации вашего приложения? На самом деле, как только вы начнете реализовывать приложение, вы должны знать много зависимостей в виде сервисов по мере своего дизайна, а затем одну вещь, которую я хотел бы выделить в отношении службы насмешек, которую я испытал, мне нравится представлять службу насмешек mountebank
, Преимущество насмешек services — это когда вам нужно интегрировать приложение Frontend в приложение Backend, но приложение Backend еще не готово. Служба mocking — это ответ, который поможет прогрессу интерфейса без бэкэнда. Кстати, у вас должно быть пространство для ответа, прежде чем ваш дизайн издевается, мы должны сделать согласование запроса и ответа в спецификации как ваш дизайн. Итак, это важный момент
Фон Маунтбанка
mountebank — это фреймворк javascript, что означает, что перед тем, как вы начнете использовать его, вы должны сначала узнать, как писать javascript, но javascript очень относится к языку с низкой кривой обучения, а формат mountebank — это формат файла ejs
, кажется, вы можете включить JSON файл в вашем JSON (JSON в JSON) с синтаксисом <% include ./path/of/file.ejs %>
последним дочерним элементом include будет файл JSON .json
, который является предикатом. к вашему сведению. mountebank не использует какой-либо javascript для изменения предиката, за исключением того, что вы хотели бы изменить ответ на динамический.
Как установить
- загрузите среду выполнения node js, а затем установите на свой локальный компьютер по ссылке для загрузки здесь https://nodejs.org/en/download/ после завершения установки вы можете протестировать узел с открытым терминалом или PowerShell на вашем компьютере, а затем запустите команду
node --version
, чтобы проверить, должен ли вывод, показывающий версию, означающую, что узел уже использовался прямо сейчас. - если загрузка и установка завершена, следующее действие вы должны создать каталог для хранения исходного кода
- создайте файл узла пакета с помощью команды
npm init
на терминале в PowerShell, а затем введите необходимую информацию. не забывайте, что вы должны сначала изменить каталог на созданный, прежде чем запускать инициировать. - установите mountebank в свой исходный код с помощью команды npm
npm -ig mountebank
-g Параметр установленный пакет для глобального хорошо, mountebank готов к использованию. - создайте файл предиката в папке stubs, например,
/stubs/servcies/account/getAccount.json
, как показано ниже
- создайте файл service.ejs, подобный этому ‹% include account/getAccount.json %›
- создать файл импостера, например, в теме Что такое самозванцы
- измените конфигурацию в файле packge.json, чтобы изменить команду npm для запуска mountebank с вашими настройками, как показано ниже.
- тестовый запуск командой
npm start
если все в порядке система будет показана вот так.
- тестовый звонок с почтальоном, чтобы проверить ответ, если все в порядке, система будет показана так
Структура кода
Что такое самозванец
Самозванцы как я понял Просто настройте файл JSON так что вам какой порт выставить, и консолидировать сервис и предикат к запуску сервиса. например, как показано ниже.
заглушки – это часть для хранения файла сервисов, который вы можете определить для своего сервиса отдельно от сервиса с помощью каталога, чтобы упростить поддержку исходного кода в будущем.
Что за услуга
служба является узлом микросервиса или Apis 3rds, поскольку вы хотите подключиться в своем приложении, например. обслуживание аккаунта, обслуживание заказов, сервис google Бла Бла Бла
Что такое предикат
предикат — это правило процесса, что вы хотите делать с вашим запросом и что вы хотите делать с вашим ответом, который вы можете делать с предикатными файлами.
В приведенном выше коде после того, как путь, отправленный запросом, совпадает с /graphql
, служба будет автоматически перенаправлена на прокси-сервер http://graphql-interface:8080
для каждого метода, поскольку в коде нет метода спецификации, что означает, что любой запрос метода на этот путь будет также автоматически перенаправлен на прокси-сервер. .
Область ввода запроса
mountebank может быть известен как стандарт HTTP-запроса, например, строка запроса, заголовки HTTP, тело запроса, которые означают все, что вы отправили в mountebank, вы также можете создать предикат.
Прокси
Как только вам нужно перенаправить какую-то конечную точку на реальные службы, вы можете использовать эту функцию, а затем как использовать вас? очень легко просто создать прокси для предиката, как описано выше в теме, что такое предикат.
Совпадения против равных
- соответствие является динамическим для проверки ввода вашего запроса с помощью регулярного выражения
- equals является статическим для проверки, тогда фиксированный ключ и значение должны быть равны запросу.
Работа с регулярным выражением
Однажды вам нужно смоделировать какую-то конечную точку или какой-то путь конечной точки, чтобы сделать что-то, например, для работы с любым запросом.
Добавить больше предикатов в один файл
Вы можете создать один файл предиката и добавить больше правил предиката более одного условия, как показано ниже.
Пользовательский ответ
Как только вам нужно получить какое-то значение и вставить его в свой ответ, вы можете сделать это.
Открыть режим отладки
просто добавьте конфигурацию в файл packge.json, чтобы открыть режим отладки с параметрами loglevel debug
like, как показано ниже.
Интеграция с докером
Когда вам нужно развернуться в кластере Kubernetes, просто создайте диаграмму push-to-helm, а затем разверните, например, Docker, как показано ниже.
- создайте тестовый образ на вашем локальном компьютере с помощью команды
docker build -t mountebank:1.0 .
` - тестовый запуск образа докера на вашем локальном компьютере в качестве команды
docker run -p 8080:8080 mountebank:1.0 -d
служба взорвет порт с 8080, вы можете подключить свою службу к этому URL-адресу: http://localhost:8080
Заключение
для этой версии я просто хочу представить, как шаг за шагом использовать сервис mountebank для следующей версии, я подробно расскажу, как добавить случай сбоя с настраиваемым ответом, как заранее написать ответ с помощью регулярных выражений, надеюсь, это будет полезно для некоторых разработчиков 🙏
Вот исходный код на GitHub: https://github.com/maxca/mountebank-test.git