summaryrefslogtreecommitdiffstats
path: root/src/network/doc/snippets/code
diff options
context:
space:
mode:
authorJuha Vuolle <juha.vuolle@qt.io>2023-06-02 13:43:42 +0300
committerJuha Vuolle <juha.vuolle@qt.io>2023-12-08 15:53:32 +0200
commitf587ba1036164691a0981897397bdcc8f3472438 (patch)
treef9349d05222b27145df230486eff4add630ca4c7 /src/network/doc/snippets/code
parent925ce9e9084a1a9e3dbd9954fc3bc3117a038915 (diff)
QNetworkRequestFactory convenience class
The class provides a way to represent server-side service endpoints. With RESTful applications these endpoints typically have a need for repeating requests fields such as headers, query parameters, bearer token, base URL, SSL configuration. This class allows setting of the repeating parts, while allowing the setting of changing parts on a per-request basis. [ChangeLog][QtNetwork][QNetworkRequestFactory] Added a new convenience class to help with the needs of repeating network request details imposed by the server-side service endpoints, which is common with RESTful applications. Task-number: QTBUG-113814 Change-Id: Iabcfaed786949ffbb0ad0c75297d0db6ecc1a3cc Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Mate Barany <mate.barany@qt.io> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/network/doc/snippets/code')
-rw-r--r--src/network/doc/snippets/code/src_network_access_qnetworkrequestfactory.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/network/doc/snippets/code/src_network_access_qnetworkrequestfactory.cpp b/src/network/doc/snippets/code/src_network_access_qnetworkrequestfactory.cpp
new file mode 100644
index 0000000000..f6e0b89858
--- /dev/null
+++ b/src/network/doc/snippets/code/src_network_access_qnetworkrequestfactory.cpp
@@ -0,0 +1,27 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+using namespace Qt::StringLiterals;
+
+//! [0]
+// Instantiate a factory somewhere suitable in the application
+QNetworkRequestFactory api{{"https://example.com/v1"_L1}};
+
+// Set bearer token
+api.setBearerToken("my_token");
+
+// Issue requests (reply handling omitted for brevity)
+manager.get(api.request("models"_L1)); // https://example.com/v1/models
+// The conventional leading '/' for the path can be used as well
+manager.get(api.request("/models"_L1)); // https://example.com/v1/models
+//! [0]
+
+
+//! [1]
+// Here the API version v2 is used as the base path:
+QNetworkRequestFactory api{{"https://example.com/v2"_L1}};
+// ...
+manager.get(api.request("models"_L1)); // https://example.com/v2/models
+// Equivalent with a leading '/'
+manager.get(api.request("/models"_L1)); // https://example.com/v2/models
+//! [1]
+