forked from loafle/openapi-generator-original
156 lines
3.8 KiB
Markdown
156 lines
3.8 KiB
Markdown
# C++ Qt API client
|
|
|
|
#
|
|
|
|
OpenAPI Petstore
|
|
|
|
- API version: 1.0.0
|
|
|
|
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
|
|
|
|
|
*Automatically generated by the [OpenAPI Generator](https://openapi-generator.tech)*
|
|
|
|
|
|
## Requirements
|
|
|
|
Building the API client library requires:
|
|
|
|
1. CMake 3.2+
|
|
2. Qt
|
|
3. C++ Compiler
|
|
|
|
## Getting Started
|
|
|
|
example.h:
|
|
```c++
|
|
|
|
#include <iostream>
|
|
#include "../client/PFXPetApi.h"
|
|
|
|
using namespace test_namespace;
|
|
|
|
class Example : public QObject {
|
|
Q_OBJECT
|
|
PFXPet create();
|
|
public slots:
|
|
void exampleFunction1();
|
|
};
|
|
|
|
```
|
|
|
|
example.cpp:
|
|
```c++
|
|
|
|
#include "../client/PFXPetApi.h"
|
|
#include "example.h"
|
|
#include <QTimer>
|
|
#include <QEventLoop>
|
|
|
|
PFXPet Example::create(){
|
|
PFXPet obj;
|
|
return obj;
|
|
}
|
|
|
|
void Example::exampleFunction1(){
|
|
PFXPetApi apiInstance;
|
|
|
|
//OAuth Authentication supported right now
|
|
|
|
QEventLoop loop;
|
|
connect(&apiInstance, &PFXPetApi::addPetSignal, [&]() {
|
|
loop.quit();
|
|
});
|
|
connect(&apiInstance, &PFXPetApi::addPetSignalE, [&](QNetworkReply::NetworkError, QString error_str) {
|
|
qDebug() << "Error happened while issuing request : " << error_str;
|
|
loop.quit();
|
|
});
|
|
|
|
PFXPet pfx_pet = create(); // PFXPet | Pet object that needs to be added to the store
|
|
apiInstance.addPet(pfx_pet);
|
|
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
|
|
loop.exec();
|
|
}
|
|
|
|
```
|
|
|
|
## Documentation for Servers
|
|
|
|
Parameterized Servers are supported. Define a server in the API for each endpoint with arbitrary numbers of variables:
|
|
|
|
```yaml
|
|
servers:
|
|
- url: http://{server}:{port}/{basePath}
|
|
description: Description of the Server
|
|
variables:
|
|
server:
|
|
enum:
|
|
- 'petstore'
|
|
- 'qa-petstore'
|
|
- 'dev-petstore'
|
|
default: 'petstore'
|
|
port:
|
|
enum:
|
|
- '3000'
|
|
- '1000'
|
|
default: '3000'
|
|
basePath:
|
|
default: v1
|
|
```
|
|
To change the default variable, use this function in each Api:
|
|
```c++
|
|
int setDefaultServerValue(int serverIndex,const QString &operation, const QString &variable,const QString &val);
|
|
```
|
|
The parameter "serverIndex" will choose a server from the server list for each endpoint. There is always at least one server with index 0. The Parameter "operation" should be the desired endpoint operationid.
|
|
Variable is the name of the variable you wish to change and the value is the new default Value.
|
|
The function will return -1 when the variable does not exists, -2 if value is not defined in the variable enum and -3 if the operation is not found.
|
|
|
|
If your endpoint has multiple server objects in the servers array, you can set the server that will be used with this function:
|
|
```c++
|
|
void setServerIndex(const QString &operation, int serverIndex);
|
|
```
|
|
Parameter "operation" should be your operationid. "serverIndex" is the index you want to set as your default server. The function will check if there is a server with your index.
|
|
Here is an example of multiple servers in the servers array. The first server will have index 0 and the second will have index 1.
|
|
```yaml
|
|
servers:
|
|
- url: http://{server}:8080/
|
|
description: Description of the Server
|
|
variables:
|
|
server:
|
|
enum:
|
|
- 'petstore'
|
|
- 'qa-petstore'
|
|
- 'dev-petstore'
|
|
default: 'petstore'
|
|
- url: https://localhost:8080/v1
|
|
```
|
|
|
|
## Documentation for Authorization
|
|
|
|
Authentication schemes defined for the API:
|
|
### petstore_auth
|
|
|
|
|
|
- **Type**: OAuth
|
|
- **Flow**: implicit
|
|
- **Authorization URL**: http://petstore.swagger.io/api/oauth/dialog
|
|
- **Scopes**:
|
|
- write:pets: modify pets in your account
|
|
- read:pets: read your pets
|
|
|
|
### api_key
|
|
|
|
|
|
- **Type**: API key
|
|
- **API key parameter name**: api_key
|
|
- **Location**: HTTP header
|
|
|
|
|
|
## Author
|
|
|
|
|
|
|
|
|
|
## License
|
|
|
|
Apache-2.0 for more information visit [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.html) |