садился описывать всю задачу, но когда я начинаю писать - я понимаю, что эта задача из разряда "я что-то делаю не так" и мне тупо немножечко стыдно такое писать :) Но давайте попробую еще разок написать:
Есть некий старый монолит, который бизнес не хочет обновлять часто (типа есть и работает). В этом монолите есть механизм формирования отчетов пользователям, который часто требует доработки (добавление новых отчетов/отборов и пр.). Собственно задача вынести всю логику этих отчетов в отдельный сервис, который будет основному старому монолиту отдавать все что надо в JSON (список отчетов, отборы, результат построения). Есть отдел сопровождения, которым нужно периодически добавлять отчеты - у них на руках по сути есть SQL запрос (который даст нужный результат отчету) и перечень настроек отчета и они хотят иметь возможность добавить новый отчет просто заполнив некую форму и/или просто отредактировав какой-нибудь конфиг файл с настройками. Соответственно была идея просто откуда-то забирать JSON файл со всеми настройками отчетов, парсить его, отдавать монолиту результат (чтобы он дал возможность пользователю выбрать какой отчет он хочет построить и какие отборы (из доступных) хочет указать), а тот его отправляет обратно в сервис, чтобы тот построил sql запрос (с учетом выбранных параметров) и вернул результат. Вот какая-то такая задача изначальная.
Можно по сути конечно и просто тупо SQL query в настройках тупо указывать, но как потом добавлять (параметр может быть "статическим" в sql запросе изначально) / удалять к этому всему параметры? Может я херней страдаю и можно решить проще, а я тут себе что-то навыдумывал?
это сложная для go задача. тут пахнет обобщенным программированием, которое у нас не очень (пока?) можно попробовать сочинить dsl для этого, в принципе (хотя sql и так dsl, но его парсить сложно)
Обсуждают сегодня