Несколько клиентов -> Single Rest Service -> Хранить данные клиента в нескольких таблицах - PullRequest
0 голосов
/ 30 марта 2020

У меня есть служба отдыха, которая будет обслуживать нескольких клиентов.

URL-адрес POST-запроса: / activity

Запрос Client1:

{
    "client": "Client1",
    "name": "AAA",
    "surName": "BBB",
    ...
}

Запрос Client2:

{
    "client": "Client2",
    "name": "CCC",
    "surName": "DDD",
    ...
}

Запрос Client3:

{
    "client": "Client3",
    "name": "EEE",
    "surName": "FFF",
    ...
}

Каждый клиентский запрос будет храниться в отдельных таблицах. Имя клиента будет находиться в теле ввода между тегами клиента. Теперь, основываясь на этом имени клиента, сервис должен вставить записи в соответствующую таблицу клиентов.

Я использую Java с Spring Boot (для службы отдыха) и Spring Data Repository (для хранения данных входящего запроса внутри таблицы).

Имя таблицы имеет вид:

for Client1 ==> TB_CLIENT1_REQUEST
for Client2 ==> TB_CLIENT2_REQUEST
for Client3 ==> TB_CLIENT3_REQUEST

Один из подходов заключается в следующем: я могу использовать операторы if else для проверки имени клиента и вызова соответствующего класса репозитория для вставки запроса в отдельную таблицу клиентов.

if (client === 'Client1') {
   client1Repository.save(client1Entity);
} else if(client === 'Client2') {
   client2Repository.save(client2Entity);
} else if(client === 'Client3') {
   client3Repository.save(client3Entity);
}

Существуют ли другие разумный подход без использования операторов if else. ?

Примечание: Я не могу использовать несколько конечных точек для разных клиентов. Конечная точка должна быть одинаковой для каждой операции.

Пожалуйста, дайте мне знать.

Заранее спасибо.

...