RestLink 2.2.0
Powerfull Rest Client for Qt
Loading...
Searching...
No Matches
abstractrequesthandler.h
1#ifndef RESTLINK_ABSTRACTREQUESTHANDLER_H
2#define RESTLINK_ABSTRACTREQUESTHANDLER_H
3
4#include <RestLink/global.h>
5
6#include <QtCore/qscopedpointer.h>
7
8namespace RestLink {
9
10class Request;
11class Body;
12class Response;
13class AbstractRequestInterceptor;
14
15class AbstractRequestHandlerPrivate;
16class RESTLINK_EXPORT AbstractRequestHandler
17{
18public:
29
33
34 UnknownHandler = -1
35 };
36
38
39 virtual QString handlerName() const;
40
41 Response *head(const Request &request);
42 Response *get(const Request &request);
43 Response *post(const Request &request, const Body &body);
44 Response *put(const Request &request, const Body &body);
45 Response *patch(const Request &request, const Body &body);
46 Response *deleteResource(const Request &request);
47 Response *send(Method method, const Request &request, const Body &body);
48
49 QList<AbstractRequestInterceptor *> requestInterceptors() const;
50 void addRequestInterceptor(AbstractRequestInterceptor *interceptor);
51 void removeRequestInterceptor(AbstractRequestInterceptor *interceptor);
52
53 virtual QStringList supportedSchemes() const = 0;
54 virtual HandlerType handlerType() const = 0;
55
56protected:
58
59 bool isRequestSupported(const Request &request) const;
60 void initResponse(Response *response, const Request &request, Method method);
61 virtual Response *sendRequest(Method method, const Request &request, const Body &body) = 0;
62
63 QScopedPointer<AbstractRequestHandlerPrivate> d_ptr;
64};
65
66} // namespace RestLink
67
68#endif // RESTLINK_ABSTRACTREQUESTHANDLER_H