RestLink 2.2.0
Powerfull Rest Client for Qt
Loading...
Searching...
No Matches
apibase.h
1#ifndef RESTLINK_APIBASE_H
2#define RESTLINK_APIBASE_H
3
4#include <RestLink/global.h>
5#include <RestLink/requestinterface.h>
6#include <RestLink/abstractrequesthandler.h>
7
8#include <QtCore/qobject.h>
9
10#include <functional>
11
12namespace RestLink {
13
14class Request;
15class Body;
16class Response;
17class NetworkManager;
18
19typedef std::function<void(Response *)> ApiRunCallback;
20
21class ApiBasePrivate;
22class RESTLINK_EXPORT ApiBase : public QObject, public RequestInterface
23{
24 Q_OBJECT
25
26public:
27 virtual ~ApiBase();
28
29 virtual QUrl url() const = 0;
30
31 virtual QLocale locale() const;
32
33 void head(const Request &request, const ApiRunCallback &callback);
34 Response *head(const Request &request);
35
36 void get(const Request &request, const ApiRunCallback &callback);
37 Response *get(const Request &request);
38
39 void post(const Request &request, const Body &body, const ApiRunCallback &callback);
40 Response *post(const Request &request, const Body &body);
41
42 void put(const Request &request, const Body &body, const ApiRunCallback &callback);
43 Response *put(const Request &request, const Body &body);
44
45 void patch(const Request &request, const Body &body, const ApiRunCallback &callback);
46 Response *patch(const Request &request, const Body &body);
47
48 void deleteResource(const Request &request, const ApiRunCallback &callback);
49 Response *deleteResource(const Request &request);
50
51 virtual Response *send(AbstractRequestHandler::Method method, const Request &request, const Body &body);
52
53 virtual QString userAgent() const;
54
55 NetworkManager *networkManager() const;
56 void setNetworkManager(NetworkManager *manager);
57
58protected:
59 ApiBase(ApiBasePrivate *d, QObject *parent);
60
61 QScopedPointer<ApiBasePrivate> d_ptr;
62
63private:
64 const QList<PathParameter> *constPathParameters() const override;
65 QList<PathParameter> *mutablePathParameters() override;
66 const QList<QueryParameter> *constQueryParameters() const override;
67 QList<QueryParameter> *mutableQueryParameters() override;
68 const QList<Header> *constHeaders() const override;
69 QList<Header> *mutableHeaders() override;
70
71 friend class ApiBasePrivate;
72};
73
74}
75
76#endif // RESTLINK_APIBASE_H