Ради разнообразия решил сделать из второго микросервиса математический микросервис на основе библиотеки Math.js
Consumer-микросервис возвращает результаты функции math.evaluate().
Принимает запросы с телом по схеме { "calc": "мат. выражение" }
На выходе получается ответ в формате { "id": "uuid", "data": "результат", "error"?: "текст ошибки" }
Если в мат. выражении будут ошибки, то вернётся ответ с ошибкой
npm install
В разных терминалах:
docker-compose up
- поднятие rabbitmq - оно в докереnpm run service:gateway
- запуск producer-сервисаnpm run service:math
- запуск consumer-сервиса
Пример:
> curl -X POST -H "Content-Type: application/json" -d "{\"calc\": \"1.2 * (2 + 4.5)\"}" http://localhost:3000/calc
> 78
Порт можно менять, если у Вас там ещё что-то крутится