Как можно объединить данные из разных таблиц в один массив и отправить его в ответе через REST API?

Как можно организовать обработку REST вызова в Golang таким образом, чтобы данные из разных таблиц Clickhouse были объединены в один массив, сохраняя при этом все необходимые поля? Мы рассмотрели возможность использования поля json, но оно не типизировано, и фронтенд должен знать заранее структуру данных. Также рассмотрели идею разделения каждого поля на два параметра: name (название параметра) и value (значение параметра). Какая будет рекомендация по данному вопросу?
Изображение к вопросу
Изображение к вопросу
  • 1 ноября 2023 г. 6:08
Ответы на вопрос 1
Есть несколько подходов, которые вы можете рассмотреть:

1. Объединение данных на уровне сервера:
   - Получите данные из каждой таблицы с помощью SQL-запросов к ClickHouse.
   - Обработайте и объедините данные на сервере, сконвертировав их в желаемую структуру.
   - Отправьте объединенные данные в виде массива через REST API.

2. Возвращение данных в формате JSON:
   - Получите данные из каждой таблицы с помощью SQL-запросов к ClickHouse.
   - Сохраните каждую таблицу в отдельный JSON-объект.
   - Объедините JSON-объекты в один массив.
   - Отправьте объединенный массив данных через REST API.

3. Использование структуры данных в Go:
   - Создайте структуру данных, которая включает все необходимые поля из разных таблиц.
   - Получите данные из каждой таблицы с помощью SQL-запросов к ClickHouse.
   - Создайте экземпляры структуры данных для каждой записи в таблице и заполните их данными из ClickHouse.
   - Объедините экземпляры структуры данных в один массив.
   - Отправьте объединенный массив данных через REST API.

Вариант зависит от ваших предпочтений и требований. Если структура данных различается для каждой таблицы, то первые два подхода могут быть более удобными. Если структура данных одинакова или схожа для каждой таблицы, то третий подход может быть более эффективным и удобным для работы с данными на стороне сервера.
Похожие вопросы