Платный заказ
Бюджет:
10 000 руб
Нужно провести углубленное Обучение и ответить на вопросы по Laravel
Мы реализуем довольно простое API, но есть некоторая специфика в получении и изменении данных в базе. Дело в том, что наше API должно иметь возможность обращаться к разным базам данных, имеющим сходную, но не одинаковую номенклатуру полей в таблицах.
В каждой базе есть хранимые процедуры (например, SP_API_CAR_SELECT, SP_API_CAR_UPDATE, SP_API_CAR_INSERT, SP_API_CAR_DELETE), которые принимают одинаковый набор параметров (в случае _UPDATE и _INSERT данные приходят в xml, т.е., название параметра всегда одно (data), а содержимое и номенклатура столбцов могут быть различны). Процедура _SELECT может выдавать разные ответы, в зависимости от входного параметра MODE: номенклатуру столбцов с признаками "является первичным ключом", "видимое поле", "редактируемое поле", "обязательное поле" (правильные названия столбцов с данными типа int и содержащими битовые маски с признаками для каждого столбца), собственно данные (для этого нужно в соответствующих полях передать подстроку where, offset, limit и orderBy) и, если это нужно, count одна строка с одним столбцом количество строк с учетом where, offset, limit. Варианта реализации видится 2: прямо в контроллере собирать нужные запросы, пользуясь DB::select или, что более кошерно, переписать построитель запросов (понимая, что не все средства построителя будут доступны для такого типа взаимодействия с базой).