g
gogoer13 декабря 2021 г. 9:29

Rest Api сервер на QT

REST API

Здравствуйте.
Есть необходимость создать небольшой REST API сервер, который нужно будет запускать в том числе на платах типа Raspberry Pi.
Есть много платформ, на которых то можно реализовать (Django, Node.js ...) но мой основной фреймворк - QT. С остальными технологиями еще нужно разбираться, большого опыта нет.
Так вот вопрос - есть ли смысл пытаться сделать это на QT или будет слишком много мороки и мало толка?
Нашел вроде как готовый фреймворк для этой задачи - Cutelyst, построен на QT и позиционируется как решение для создания REST API сервисов. Может быть, у кого-то был подобный опыт и можете поделиться своим мнением?

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

13
Alexander
  • 13 декабря 2021 г. 9:41

мы писали на qt с использованием qtwebapp , но на джанге наверно проще, хотя если принять в расчет машину, я бы взял fastapi

    zloi
    • 13 декабря 2021 г. 9:52

    Если сервер не особо сложный будет (типо crud операции), то по моему мнению лучше всего выбрать NodeJS.

      g
      • 13 декабря 2021 г. 9:58

      Да, сервер не шибко сложный планируется.
      Суть в том, что несколько малинок подключаются к серверу через websocket, обмениваются сообщениями. Результаты общения складываются в базу. А через API можно получать доступ к информации.
      Хотелось бы иметь возможность развернуть этот сервер и на самой малине, чтобы в случае отсутствия интернета все работало локально.

        o
        • 13 декабря 2021 г. 17:04
        • (ред.)

        на qt нет готового http сервера, но есть другие с++ библиотеки, например, POCO тык , или библиотека для встраиванмых систем тык , или микро http сервер тык , есть еще boost тык ( тык ) и т.д. Можно поискать в списке conan.io

          g
          • 14 декабря 2021 г. 6:34

          Вот проект cutelyst тык , он использует свой веб-сервер, а мы пишем на qt библиотеку для обработки запросов. Обработку json и работу с websocket на qt организовать довольно просто. Работа с базой данных тоже не проблема. Я попробовал собрать простой проект, вроде работает все.
          Вот хотелось понять, стоит ли это использовать, может есть у кого опыт. Или все же лучше потратить время на разбирательство с тем же python и fastapi или же node.js с какой-нибудь надстройкой. Меня в cutelyst подкупает то, что там используется язык, который мне уже знаком) а с остальным нужно еще разбираться.

            o
            • 15 декабря 2021 г. 14:39

            Писать надо на языке, который знает команда.

              o
              • 15 декабря 2021 г. 14:46
              • (ред.)

              есть еще такие, на qt

              тык

              тык

                g
                • 15 декабря 2021 г. 16:31

                Команда у нас пока небольшая: я да я. Работаю в основном на QT, поэтому и склоняюсь к этому же языку.
                По поводу qhttpserver и QtWebApp, их я видел. Но они староваты, под QT6 наверно не заведутся без плясок с бубном.

                  o
                  • 16 декабря 2021 г. 2:47

                  Qt практически не ломает обратную совместимость, думаю они и под 4.8, и под 5.x, и под 6.х заведуться без проблем.

                    o
                    • 16 декабря 2021 г. 3:10

                    Я бы по тыкал палкой во все qt + boost + poco, потом выбрал.

                      g
                      • 16 декабря 2021 г. 3:17

                      Наверное так и сделаю) спасибо.

                        G
                        • 21 декабря 2021 г. 7:23

                        Здравствуйте. Я новичок. Где взять нормальные установщики PyQt4 и 5 под Windows? И инструкции по установке? То что в инете видел - не получается установить. Дома прямой инет и Win7. На работе proxy и Win10.
                        Заранее благодарен за ответ.

                          g
                          • 21 декабря 2021 г. 7:24

                          Тема немножно не про это. Создайте свою и задайте вопрос.

                            Комментарии

                            Только авторизованные пользователи могут публиковать комментарии.
                            Пожалуйста, авторизуйтесь или зарегистрируйтесь
                            e
                            • ehot
                            • 31 марта 2024 г. 14:29

                            C++ - Тест 003. Условия и циклы

                            • Результат:78баллов,
                            • Очки рейтинга2
                            B

                            C++ - Тест 002. Константы

                            • Результат:16баллов,
                            • Очки рейтинга-10
                            B

                            C++ - Тест 001. Первая программа и типы данных

                            • Результат:46баллов,
                            • Очки рейтинга-6
                            Последние комментарии
                            k
                            kmssr8 февраля 2024 г. 18:43
                            Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                            АК
                            Анатолий Кононенко5 февраля 2024 г. 1:50
                            Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                            EVA
                            EVA25 декабря 2023 г. 10:30
                            Boost - статическая линковка в CMake проекте под Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                            J
                            JonnyJo25 декабря 2023 г. 8:38
                            Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                            G
                            Gvozdik18 декабря 2023 г. 21:01
                            Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                            Сейчас обсуждают на форуме
                            a
                            a_vlasov14 апреля 2024 г. 6:41
                            Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
                            Павел Дорофеев
                            Павел Дорофеев14 апреля 2024 г. 2:35
                            QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
                            f
                            fastrex4 апреля 2024 г. 4:47
                            Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…
                            P
                            Pisych27 февраля 2023 г. 4:04
                            Как получить в массив значения из связанной модели? Спасибо, разобрался:))
                            AC
                            Alexandru Codreanu19 января 2024 г. 11:57
                            QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…

                            Следите за нами в социальных сетях