Михаиллл
МихаилллМамыр 9, 2019, 12:33 Т.Қ.

Как в Qt сделать API?

API

Добрый день.
У меня есть база данных PostgreSQL.
Название "test_db"
У нее 3 столбца: "id", "int", "text".
Создал приложение, которое подключаеться к этой базе данных.
Как из этого приложения сделать API? К примеру отправлять данные из ячейки столбца "text" нужной строчки.

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

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

14
ЧГ
  • Мамыр 9, 2019, 3 Т.Қ.

Смотря куда отправлять. Если другому приложению то через локальные сокеты (QLocalSocket), или по сети. В любом случае, данные в вашем приложении кладуться в QDataStream и пересылаются. Ну это как я понял вопрос, можете поподробнее объяснить?

    Evgenii Legotckoi
    • Мамыр 10, 2019, 4:21 Т.Ж.

    Добрый день.

    А давайте вы подробнее раскажете, что именно хотите сделать. Просто делать API для приложений на Qt да и вообще на C++ не самая лучшая идея на мой взгляд. Не в том плане, что это плохо, а в том плане, что делать подобное в одиночку - это очень большие трудозатраты, которые очень медленно окупаются. Я бы и 10-й части не сделал из того, что сейчас есть на сайте, если бы писал его бэкенд на C++.

    То есть возможно, что вам стоит выбрать иную технологию для этого.

      Михаиллл
      • Мамыр 10, 2019, 4:28 Т.Ж.

      Добрый день.
      Просто хочу изучить технологию создания API и работы с ним.
      Какие наиоболее оптимальные варианты для создания API?

        Evgenii Legotckoi
        • Мамыр 10, 2019, 4:37 Т.Ж.

        Вариантов, как реализовать это всё - уйма. Да и самих API также очень много. Сейчас наиболее распространён, на мой взгляд, вариант REST API. Вот небольшая обзорная статья на эту тему. Собственно говоря, если делать API на C++, то я бы посмотрел в сторону Wt фреймворка, там уже давно должны быть необходимые механизмы. А вот Qt для этого подходит меньше.

        Но на данный момемнт я бы склонялся к тому, чтобы взять django и django-rest-framework, ну или аналог из других технологических стеков, думаю, что в Ruby on Rails также есть что-то подобное.

        REST-API - это в первую очередь WEB, так что и технологии стоит брать соответсвующие. Если только не рассматриваете вариант добавления REST-API во встраиваемое решение. Тут конечно будете ограничены набором языков программирования

          Михаиллл
          • Мамыр 10, 2019, 7:05 Т.Ж.

          А если это не веб, а андроид или ios? Что лучше для этого?

            Evgenii Legotckoi
            • Мамыр 10, 2019, 7:17 Т.Ж.

            Android и iOS - это клиентские приложения. А я говорил в первую очередь про бэкенд, про сервер с базой данных и т.д.

            Для Android и iOS можете писать на Qt/QML/C++ или Dart/Flutter или на иной любой технологии, что удобнее, в том числе и на нативных Java и Swift.

            Но для самого сервера, который предоставляет API для получения данных, конечно нужно выбирать то, что будет наиболее удобным и быстро реализуемым. Для сервера на данный момент существует множество решений, которые позволяют быстро разрабатывать API и структуру базы данных. Я могу лишь со стороны своего опыта посоветовать Django, возможно, что кто-то посоветует вам NodeJS и Ruby on Rails. Я просто не стал бы заморчиваться с C++ для этого. Много мороки будет.

            В любом случае будет лучше, если вы используете существующие решения для реализации транспортного и уровня приложения в стеке OSI. А это уже скорее всего будет HTTP/HTTPS, а значит стоит посмотреть в сторону REST-API. В таком случае у вас сервер уже будет доступен через WEB протоколы.

            Когда начну писать приложение для сайта, если такой момент когда-нибудь настанет, то продолжу использовать Django, а клиентские приложения будут писать на какой-нибудь свежей технологии, может на Dart/Flutter, ну и или на Qt, посмотрю в каком он будет состоянии на тот момент.

            То есть серверу поровну, что будет к нему подключаться, Android, iOS или десктопное приложение. Говоря Web сервер я не имею ввиду только сервер, который отдаёт странички. Это может быть и просто узел в сети интернет, который предоставляет REST-API.

              Михаиллл
              • Мамыр 10, 2019, 7:21 Т.Ж.
              • Жауап шешім ретінде белгіленді.

              Спасибо

                Михаиллл
                • Мамыр 31, 2019, 1:37 Т.Қ.

                Скажите пожалуйста, нет ли у вас примера построения API на Django?

                  Evgenii Legotckoi
                  • Маусым 4, 2019, 6:06 Т.Ж.

                  Не было необходимости много заниматься этим, поэтому могу посоветовать почитать документацию на django_rest_framework - это то, что нужно

                    Михаиллл
                    • Маусым 15, 2019, 4:55 Т.Ж.

                    В какой среде разработки удобней писать на django? Подходит ли для этого и добен ли PyQT5?

                      Evgenii Legotckoi
                      • Маусым 16, 2019, 3:39 Т.Қ.

                      PyQt5 - это не среда разработки. Это библиотека привязок на python к библиотеки Qt.

                      Для разработки на Django я использую PyCharm Professional Edition.

                        Михаиллл
                        • Маусым 17, 2019, 1:08 Т.Ж.

                        Спасибо.
                        А бесплатный PyCharm подойдет?

                          Evgenii Legotckoi
                          • Маусым 17, 2019, 1:11 Т.Ж.

                          Нет. В PyCharm Community Edition нет поддержки Django. Разрабатывать конечно можно, только запускать всё вручную из консоли придётся.

                          Можете также поискать в интернете ключи или бэкдор сервера, но их довольно быстро блочат в JetBrains. Поэтому я использую Proffesional Edition.

                            Михаиллл
                            • Маусым 17, 2019, 1:47 Т.Ж.

                            Пасибо.

                              Пікірлер

                              Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
                              Кіріңіз немесе Тіркеліңіз
                              Г

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

                              • Нәтиже:66ұпай,
                              • Бағалау ұпайлары-1
                              t

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

                              • Нәтиже:33ұпай,
                              • Бағалау ұпайлары-10
                              t

                              Qt - Тест 001. Сигналы и слоты

                              • Нәтиже:52ұпай,
                              • Бағалау ұпайлары-4
                              Соңғы пікірлер
                              G
                              GoattRockҚыр. 3, 2024, 1:50 Т.Қ.
                              Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
                              d
                              dblas5Шілде 5, 2024, 11:02 Т.Ж.
                              QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                              k
                              kmssrАқп. 8, 2024, 6:43 Т.Қ.
                              Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                              АК
                              Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
                              Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                              Енді форумда талқылаңыз
                              Evgenii Legotckoi
                              Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
                              добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                              F
                              FynjyШілде 22, 2024, 4:15 Т.Ж.
                              при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
                              BlinCT
                              BlinCTМаусым 25, 2024, 1 Т.Ж.
                              Нарисовать кривую в qml Всем привет. Имеется Лист листов с тосками, точки получаны интерполяцией Лагранжа. Вопрос, как этими точками нарисовать кривую? ChartView отпадает сразу, в qt6.7 появился новый элемент…
                              BlinCT
                              BlinCTМамыр 5, 2024, 5:46 Т.Ж.
                              Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
                              Evgenii Legotckoi
                              Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
                              Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.

                              Бізді әлеуметтік желілерде бақылаңыз