Releases: nessshon/pyapiq
Releases · nessshon/pyapiq
v0.0.8
What's Changed
- Refactored imports across modules and aligned function argument lists for improved readability and consistency.
- Improved client response handling — unified type parsing logic and enhanced error propagation for more robust API interactions.
- Refactored API endpoint decorators to support generic HTTP method handling and extended compatibility for GET requests with payload validation.
- Introduced
GETRequestPayloadErrorexception to explicitly handle invalid payload data in GET requests. - Extended
HTTPMethodenum with support forPATCHand added a placeholder forRepeatQueryoperations. - Optimized query parameter building by filtering out
Nonevalues before request execution.
Full Changelog: v0.0.3...v0.0.8
v0.0.3
What's Changed
- Refactored
APIQinto a modular architecture with clear separation of concerns (client,namespace,requestor). - Introduced
SyncClientAPI/AsyncClientAPIandSyncAPINamespace/AsyncAPINamespacebase classes to replace@apiclientand@apinamespace. - Removed the unified
@endpointdecorator; added@sync_endpointand@async_endpointfor explicit interface definition. - Replaced
as_modelwithreturn_as, supporting Pydantic models, primitive types (e.g.,int,str), and customReturnTypehandlers. - Added
requestsandratelimiterto project dependencies.
Full Changelog: v0.0.2...v0.0.3
v0.0.2
What's Changed
- Removed
logger.pyandnamespace.pyin favor of cleaner abstraction viaprotocols.py. - Added
RateLimitedSessionfor built-in rate limiting. - Introduced
@apiclientand@apinamespacedecorators for simpler client and endpoint definitions. - Unified response handling and model parsing through utilities.
Full Changelog: v0.0.1...v0.0.2
v0.0.1
Release Notes – Version 0.0.1
We are pleased to announce the initial release of apiq, an elegant and fully asynchronous Python framework for building API clients with minimal boilerplate.
Key Features and Capabilities
-
Core Architecture
APIClientbase class for creating clients with built-in async HTTP requests, rate limiting, and retries.APINamespacefor logical grouping of related endpoints.
-
Endpoint Decorators
@endpointdecorator supporting GET, POST, PUT, PATCH, DELETE methods.- Automatic path generation based on method names if
pathis not specified. - Flexible query parameter mapping from positional and keyword arguments.
- Supports request bodies as Pydantic models or plain dictionaries.
- Response parsing into Pydantic models or raw dictionaries if no model is specified.
-
Integrated Features
- Rate limiting configuration via
rpsparameter. - Automatic retries on HTTP 429 responses with configurable
max_retries. - Debug logging for full request and response inspection.
- Rate limiting configuration via
Example Use Cases
- Define structured API clients with clear OOP design.
- Use Pydantic models for strict request and response validation.
- Build robust integrations with external APIs quickly and cleanly.
Full Changelog: https://github.com/nessshon/apiq/commits/v0.0.1