Последние несколько дней я искал вокруг себя, пытаясь найти хорошую статью, в которой рассказывалось о том, что я пытаюсь сделать, но пока не нашел ничего особенного. Большинство указывает мне на направление уже существующих C ++ MVC фреймворков.
У меня есть приложение C ++ с крошечным встроенным веб-сервером, который отвечает на запросы HTTP. Я хочу создать шаблон маршрутизации, в котором я могу определить конечные точки службы, и приложение сможет использовать соответствующий класс контроллера C ++.
Например, я мог бы определить конечные точки моей службы, как показано ниже в текстовом файле:
POST /login UserController::login()
GET /user UserController::get()
GET /dashboard DashboardController::get()
И пусть приложение C ++ вызывает соответствующий класс и статический метод на основе службы, которую я вызываю. Таким образом, в случае вышеприведенного примера, если я отправляю HTTP-запрос POST в / login, то маршрутизатор должен вызвать UserController :: login (). Конечные точки обслуживания не обязательно должны быть определены в текстовом файле, может быть другая структура данных в памяти, в которой они могут быть определены.
Я рассматривал что-то вроде шаблона Proxy: http://en.wikipedia.org/wiki/Proxy_pattern
Или я смотрел на эту модель: http://gameprogrammingpatterns.com/service-locator.html
Прежде чем углубляться в конкретную реализацию, я хотел бы получить отзывы от других о том, как они могут реализовать такое требование?
Спасибо!
Задача ещё не решена.