Details
-
Epic
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.6
-
None
-
Ease Qt REST Client application creation
-
Description
An umbrella Epic for easing Qt RESTful client application development.
Please see the top-most comment for most up-to-date understanding.
Background
Creating RESTful Qt client applications often implies writing boilerplate code and functionality which could be shared across applications.
With Qt C++ applications this involves using QNetworkAccessManager related classes, and with Qt Quick applications either that, or the Javascript's XmlHTTPRequest object.
Approaches
There are two main approaches for easing the creation of these applications:
- Code generation based on a REST API description ("spec-based approach")
- OpenAPI specification (OAS) and OpenAPI generator project is of particular interest
- OpenAPI has a pre-existing "cpp-qt-client" generator
- Helper classes/components ("code-based approach")
- Creation of general purpose REST helper classes / components / wrappers
- Help with typical REST client application needs, while remaining agnostic of any exact REST API
These two approaches are separate and suited for different scenarios and developer preferences.
Mixed use should be possible.
Functionality
Both approaches' functionality can be roughly categorized in two:
- Basic data- and control plane functionality
- That is, the ability issue various HTTP requests and process/display the responses
- Ease of access within Qt Quick applications requires particular attention
- Additional functionality and features
- Supported authentication/authorisation mechanisms
- Data caching and offline operation
- And so on
Attachments
Issue Links
- relates to
-
QTBUG-122163 Qt OpenAPI server generator support (QHttpServer)
- Open
-
QTBUG-114632 QML Fetch()
- Open
-
QTBUG-114634 Qt OpenAPI REST client generator support
- Open
-
QTBUG-113218 Qt Network Authorization module improvements
- In Progress
-
QTBUG-114633 C++ RESTful client development easing
- Closed
- resulted from
-
QTBUG-111961 Create "REST Client Boilerplate Reducer" Epic with a description and initial Jira tasks
- Closed
- resulted in
-
QTBUG-112399 [REST client support] OpenAPI generator research spike
- Closed
-
QTBUG-112406 [REST client support] Code helper research spike
- Closed