SwaggerDataProvider Module

Qore SwaggerDataProvider module definition

# Introduction to the SwaggerDataProvider Module

The SwaggerDataProvider module provides a data provider API for Swagger / Open API REST APIs. The SwaggerDataProvider class allows for introspecting a Swagger / Open API schema, while the SwaggerRequestDataProvider class supports the data provider request-reply API for communication with REST servers.

Swagger / Open API schemas can be introspected with the following format:

- REST operation path: `uri_path/HTTP_method`
  - ex: `pet/PUT`
  - results in a SwaggerRequestDataProvider object where the request and response messages can be queried and requests can be sent to the server

The following classes are provided by this module:

- SwaggerDataProvider
- SwaggerDataProviderBase
- SwaggerDataProviderFactory
- SwaggerRequestDataProvider

# Release Notes

## SwaggerDataProvider v1.2.2

- fixed a bug where data providers could return local names as paths with `"/"` characters in them, breaking some clients traversing the data provider hierarchy (issue 4555)

## SwaggerDataProvider v1.2.1

- fixed a bug where array types failed due to missing item definitions (issue 4526)
- fixed a bug where `object` types in Swagger schemas could be converted directly to `object` types in Qore instead of `hash` (issue 4520)

## SwaggerDataProvider v1.2

- fixed a bug where SwaggerDataProvider did not report binary and date types correctly (issue 4484)
- applied the `DTT_ClientOnly` type tag to client-only constructor options in SwaggerDataProvider (issue 4477)

## SwaggerDataProvider v1.1.1

- fixed a bug where SwaggerDataProvider::getDesc() throws an exception when created without a `RestClient` option (issue 4475)
- fixed a bug where the "from file" tag was not respected in constructor options (issue 4473)

## SwaggerDataProvider v1.1

- fixed a bug where requests messages were not validated and processed correctly (issue 4369)
- implemented support for enum types (issue 4368)

## SwaggerDataProvider v1.0.4

- fixed a bug where recursive definitions in a Swagger schema resulted in runtime errors using the schema (issue 4351)

## SwaggerDataProvider v1.0.3

- fixed a bug where the base path in the Swagger schema was ignored (issue 4059)

## SwaggerDataProvider v1.0.2

- fixed support empty responses (issue 3801)

## SwaggerDataProvider v1.0.1

- fixed support for requests that do not require a request hash (issue 3784)

## SwaggerDataProvider v1.0

- initial release of the module