Михаиллл
МихаилллМамыр 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 Т.Ж.

                            Пасибо.

                              Пікірлер

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

                              C++ - Тест 004. Указатели, Массивы и Циклы

                              • Нәтиже:50ұпай,
                              • Бағалау ұпайлары-4
                              m
                              • molni99
                              • Қаз. 26, 2024, 1:37 Т.Ж.

                              C++ - Тест 004. Указатели, Массивы и Циклы

                              • Нәтиже:80ұпай,
                              • Бағалау ұпайлары4
                              m
                              • molni99
                              • Қаз. 26, 2024, 1:29 Т.Ж.

                              C++ - Тест 004. Указатели, Массивы и Циклы

                              • Нәтиже:20ұпай,
                              • Бағалау ұпайлары-10
                              Соңғы пікірлер
                              ИМ
                              Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
                              Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                              Evgenii Legotckoi
                              Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
                              Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                              A
                              ALO1ZEҚаз. 19, 2024, 8:19 Т.Ж.
                              Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                              ИМ
                              Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
                              Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                              d
                              dblas5Шілде 5, 2024, 11:02 Т.Ж.
                              QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                              Енді форумда талқылаңыз
                              m
                              moogoҚар. 22, 2024, 7:17 Т.Ж.
                              Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
                              Evgenii Legotckoi
                              Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
                              добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                              t
                              tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
                              google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                              NSProject
                              NSProjectМаусым 4, 2022, 3:49 Т.Ж.
                              Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

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