Используя Qt Framework создайте вызов API в классе c ++ - PullRequest
0 голосов
/ 25 октября 2018

Я новичок в Qt Framework, и мне нужно реализовать вызов API для входа пользователей в систему.Я создал класс ApiManager, в котором я хочу создавать только вызовы, которые будет использовать приложение, чтобы они были доступны из классов C ++, а также из QML.

Я создал локальную функцию, которая имитирует вход в систему, но сейчас я хочу реализовать настоящий вызов API.Я просто не знаю, как это реализовать и какие библиотеки мне нужно импортировать или включать.

Заголовочный файл apimanager.h

#ifndef APIMANAGER_H
#define APIMANAGER_H

#include <QObject>

class ApiManager : public QObject
{
    Q_OBJECT
    Q_ENUMS(UserLevel)
public:

    enum UserLevel {
        UL_Unknown = 0,
        UL_Master = 1,
        UL_Administrator = 2,
        UL_Operator = 3
    };

    explicit ApiManager(QObject *parent = nullptr);

signals:
    void loginComplete(bool logged, UserLevel userLevel);

public slots:
    void login(QString serverAddress, QString username, QString 
password);
};

#endif // APIMANAGER_H

Класс apimanager.cpp

#include "apimanager.h"
#include <QDebug>

ApiManager::ApiManager(QObject *parent) : QObject(parent)
{

}

void ApiManager::login(QString serverAddress, QString username, 
QString password)
{
    qDebug() << "loggin into" << serverAddress << "with user" << 
    username;

    bool logged = false;
    UserLevel ul = UserLevel::UL_Unknown;
    if (username=="master" && password=="123") {
        logged = true;
        ul = UserLevel::UL_Master;
    } else if (username=="admin" && password=="123") {
        logged = true;
        ul = UserLevel::UL_Administrator;
    } else if (username=="operator" && password=="123") {
        logged = true;
        ul = UserLevel::UL_Operator;
    }

    emit loginComplete(logged, ul);

}

Если кто-нибудь может сказать мне, как написать вызов API с аналогичной структурой моей «поддельной» функции входа, я буду благодарен.

Спасибо всем

1 Ответ

0 голосов
/ 25 октября 2018

@ Marco,

Вот пример скелетного ответа Http-запроса.Он использует сетевые классы из Qt для отправки запроса и получения ответа на него.

https://github.com/ramkumarrammohan/Qt_HttpNetworkRequest

Если у вас есть какие-либо сомнения по этому поводу, пожалуйста, дайте мне знать, Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...