Я хочу предоставить веб-API, аналогичный FQL-интерфейсу Facebook.
https://developers.facebook.com/docs/reference/fql/
Моя идея состоит в том, чтобы создать сопоставление реальных таблиц SQL с поддельными, с приятными понятными именами и т. Д., А затем применить условие к отправленному запросу, чтобы ограничить доступ там, где это необходимо.
Моя проблема заключается в поиске / замене реальных имен таблиц / столбцов поддельными. Очевидно, что найти замену немного неубедительно - и это можно обойти.
Мой план состоит в том, чтобы «прочитать» опубликованный запрос, интерпретировать его в виде своего рода графа объектов, а затем воссоздать запрос, поменяв местами соответствующие имена и добавив мои обязательные условия для рассматриваемой таблицы.
У кого-нибудь есть идеи по поводу лучшего способа сделать это ИЛИ несколько советов по созданию графа объектов запроса? Я пробовал традиционные методы лексера / парсера, но я изо всех сил стараюсь сделать код явно читабельным. Есть ли что-то, что я мог бы использовать заранее?