apimatic-core-interfaces 0.1.8
An abstract layer of the functionalities provided by apimatic-core-library, requests-client-adapter and APIMatic SDKs.
License: MIT

# apimatic-core-interfaces
[![PyPI][pypi-version]](https://pypi.org/project/apimatic-core-interfaces/)  
[![Maintainability Rating][maintainability-badge]][maintainability-url]  
[![Vulnerabilities][vulnerabilities-badge]][vulnerabilities-url]  
[![Licence][license-badge]][license-url]

## Introduction
This project contains the abstract layer for APIMatic's core library. The purpose of creating interfaces is to separate out the functionalities needed by APIMatic's core library module. The goal is to support scalability and feature enhancement of the core library and the SDKs, while avoiding breaking changes by reducing tight coupling between modules.

## Version Supported
Currently, APIMatic supports **Python version 3.7+**, hence the `apimatic-core-interfaces` package requires the same version support.

## Installation
Run the following command in your SDK (the `apimatic-core-interfaces` package will be added as a dependency):
```bash
pip install apimatic-core-interfaces
```

## Interfaces
| Name                                                                                       | Description                                                                                 |
|--------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
| [`HttpClient`](apimatic_core_interfaces/client/http_client.py)                             | Saves both request and response after the completion of response.                           |
| [`ResponseFactory`](apimatic_core_interfaces/factories/response_factory.py)                | Converts the client-adapter response into a custom HTTP response.                           |
| [`Authentication`](apimatic_core_interfaces/types/authentication.py)                       | Sets up methods for the validation and application of the required authentication scheme.   |
| [`UnionType`](apimatic_core_interfaces/types/union_type.py)                                 | Sets up methods for the validation and deserialization of OneOf/AnyOf union types.           |
| [`Logger`](apimatic_core_interfaces/logger/logger.py)                                       | An interface for the generic logger facade.                                                 |
| [`ApiLogger`](apimatic_core_interfaces/logger/api_logger.py)                                | An interface for logging API requests and responses.                                        |
| [`SignatureVerifier`](apimatic_core_interfaces/security/signature_verifier.py)             | Defines the contract for verifying the authenticity of incoming events or webhook requests. |

## Types
| Name                                                                                             | Description                                                                                 |
|--------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
| [`Request`](apimatic_core_interfaces/http/request.py)                                            | Framework-agnostic request model capturing headers, method, path, body, and raw bytes. |
| [`SignatureVerificationResult`](apimatic_core_interfaces/types/signature_verification_result.py) | Provides a structured result of the verification process, including success, failure, and error details. |

## Enumerations
| Name                                                                                   | Description                                                   |
|----------------------------------------------------------------------------------------|---------------------------------------------------------------|
| [`HttpMethodEnum`](apimatic_core_interfaces/types/http_method_enum.py)                 | Enumeration containing HTTP methods (GET, POST, PATCH, DELETE).|

[pypi-version]: https://img.shields.io/pypi/v/apimatic-core-interfaces  
[license-badge]: https://img.shields.io/badge/licence-MIT-blue  
[license-url]: LICENSE  
[maintainability-badge]: https://sonarcloud.io/api/project_badges/measure?project=apimatic_core-interfaces-python&metric=sqale_rating  
[maintainability-url]: https://sonarcloud.io/summary/new_code?id=apimatic_core-interfaces-python  
[vulnerabilities-badge]: https://sonarcloud.io/api/project_badges/measure?project=apimatic_core-interfaces-python&metric=vulnerabilities  
[vulnerabilities-url]: https://sonarcloud.io/summary/new_code?id=apimatic_core-interfaces-python