
# Getting Started with Swagger Petstore - OpenAPI 3.0

## Introduction

This is a sample Pet Store Server based on the OpenAPI 3.0 specification.  You can find out more about
Swagger at [https://swagger.io](https://swagger.io). In the third iteration of the pet store, we've switched to the design first approach!
You can now help us improve the API whether it's by making changes to the definition itself or to the code.
That way, with time, we can improve the API in general, and expose some of the new features in OAS3.

_If you're looking for the Swagger 2.0/OAS 2.0 version of Petstore, then click [here](https://editor.swagger.io/?url=https://petstore.swagger.io/v2/swagger.yaml). Alternatively, you can load via the `Edit > Load Petstore OAS 2.0` menu option!_

Some useful links:

- [The Pet Store repository](https://github.com/swagger-api/swagger-petstore)
- [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml)

Find out more about Swagger: [http://swagger.io](http://swagger.io)

## Install the Package

The package is compatible with Python versions `3.7+`.
Install the package from PyPi using the following pip command:

```bash
pip install sqa-sdk==1.0.6
```

You can also view the package at:
https://pypi.python.org/pypi/sqa-sdk/1.0.6

## Test the SDK

You can test the generated SDK and the server with test cases. `unittest` is used as the testing framework and `pytest` is used as the test runner. You can run the tests as follows:

Navigate to the root directory of the SDK and run the following commands

```
pip install -r test-requirements.txt
pytest
```

## Initialize the API Client

**_Note:_** Documentation for the client can be found [here.](https://www.github.com/tahaali2000/sqa-python-sdk/tree/1.0.6/doc/client.md)

The following parameters are configurable for the API Client:

| Parameter | Type | Description |
|  --- | --- | --- |
| `http_client_instance` | `HttpClient` | The Http Client passed from the sdk user for making requests |
| `override_http_client_configuration` | `bool` | The value which determines to override properties of the passed Http Client from the sdk user |
| `http_call_back` | `HttpCallBack` | The callback value that is invoked before and after an HTTP call is made to an endpoint |
| `timeout` | `float` | The value to use for connection timeout. <br> **Default: 60** |
| `max_retries` | `int` | The number of times to retry an endpoint call if it fails. <br> **Default: 0** |
| `backoff_factor` | `float` | A backoff factor to apply between attempts after the second try. <br> **Default: 2** |
| `retry_statuses` | `Array of int` | The http statuses on which retry is to be done. <br> **Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** |
| `retry_methods` | `Array of string` | The http methods on which retry is to be done. <br> **Default: ['GET', 'PUT']** |
| `custom_header_authentication_credentials` | [`CustomHeaderAuthenticationCredentials`](https://www.github.com/tahaali2000/sqa-python-sdk/tree/1.0.6/doc/auth/custom-header-signature.md) | The credential object for Custom Header Signature |

The API client can be initialized as follows:

```python
client = Swaggerpetstoreopenapi30Client(
    custom_header_authentication_credentials=CustomHeaderAuthenticationCredentials(
        api_key='api_key'
    ),
    environment=Environment.PRODUCTION
)
```

## Authorization

This API uses the following authentication schemes.

* [`api_key (Custom Header Signature)`](https://www.github.com/tahaali2000/sqa-python-sdk/tree/1.0.6/doc/auth/custom-header-signature.md)

## List of APIs

* [Pet](https://www.github.com/tahaali2000/sqa-python-sdk/tree/1.0.6/doc/controllers/pet.md)
* [Store](https://www.github.com/tahaali2000/sqa-python-sdk/tree/1.0.6/doc/controllers/store.md)
* [User](https://www.github.com/tahaali2000/sqa-python-sdk/tree/1.0.6/doc/controllers/user.md)

## Classes Documentation

* [Utility Classes](https://www.github.com/tahaali2000/sqa-python-sdk/tree/1.0.6/doc/utility-classes.md)
* [HttpResponse](https://www.github.com/tahaali2000/sqa-python-sdk/tree/1.0.6/doc/http-response.md)
* [HttpRequest](https://www.github.com/tahaali2000/sqa-python-sdk/tree/1.0.6/doc/http-request.md)

