На чём и как писать web service rest api, если логика написана на C++?

Есть ПО, написанное на С++ и выполняющее некоторую полезную работу, и возможности которого, хотелось бы использовать в некоторых других программах комплекса. Мне было предложено написать web service rest api. Поскольку с данным зверем я никогда не сталкивался, почитал интернет, но все равно осталось много вопросов, прошу подсобить советами:

1) Я правильно понимаю, что для того, чтобы говорить о каком-либо web service api, мое приложение должно быть по сути web-сервером?
2) Логично ли писать такие вещи на С++(Qt), нагрузка обещает быть не особо большой? Моё, не самое компетентное, мнение, не очень логично. Как в таком случае делать сопряжение? На чем лучше писать?
3) Нашел несколько решений на С++ (en.wikipedia.org/wiki/List_of_web_service_frameworks). Нашел
C++ REST SDK (codename "Casablanca") стоит ли его использовать?
4) Если все ж писать на С++(Qt), может, кто подкинет простенький, но показательный, примерчик, буду очень признателен.
  • Вопрос задан
  • 9249 просмотров
Пригласить эксперта
Ответы на вопрос 6
svd71
@svd71
PHP использует синтаксис С. Так же и Java не намного ушла в отклонениях. Но никто не мешает из вашей логики соорудить cgi-application и исползовать его в web-сервере.
Ответ написан
@buzzi888
Да, вы правильно понимаете, что все веб-сервисы это прежде всего веб сервер.
Можно взять node.js, для которой rest фреймворков в переизбытке, а с существующим проектом на c++ связать с помощью модуля node-ffi. Модуль позволяет из JS кода работать с dll
node-ffi
Ответ написан
@xandox
1) ИМХО надо исходить из того как будет проще связать http-сервер и ваше уже написаное ПО. Из вопроса совершенно не понятно, что оно из себя представляет.
2) Rest api - это по суте просто формат урлов - на чем его писать совершенно не важно, и стоит писать на том (и с учетом 1) что лучше знаешь. Если кроме с++ с qt ни в чем толком не разбираешься - пиши на c++ с qt. (вот в принципе готовый http сервер на qt https://github.com/vinipsmaker/tufao (первое что попалось в гугле, там и примеры какие-то есть)
3) http серверов на разных языках и технологиях  тьма тмущая - но опять же использовать стоит то что проще и с чем знаком больше, но не забывай про 1 пункт.
Ответ написан
можно потратить пару вечеров на изучение Python, у него хорошая интеграция с С.
Зато тебя в будущем python будет часто выручать. Я сейчас похожие веб сервисы пишу на python+flask. код получается МЕГА компактным. но правда я использую html для сервиса и на стороне клиента разбираю его парсером xml.
Для rest ты можешь использовать готовый паркет flask-jsonrpc
Ответ написан
@nesterione
Как вариант, REST сервис можно написать на java, простейший фреймворк (на мой взгляд) jersey. Из java можно работать с Вашим c++ кодом, используя JNI
Ответ написан
becks
@becks Автор вопроса
Всем большое спасибо за ответы. Остановился на Python (flask или django), есть небольшой опыт его использования.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы