Skip to main content

API Client extension for automatic request marshalling.

Project description

Python API Client Json Marshal Extension

Installation

pip install api-client-jsonmarshal

Usage

The following decorators have been provided to marshal request data as python dataclasses to json and to unmarshal json directly into a python dataclass.

# Marshal dataclass -> json
@marshal_request(date_fmt: Optional[str] = None, datetime_fmt: Optional[str] = None)

# Unmarshal json -> dataclass
@unmarshal_response(schema: T, date_fmt: Optional[str] = None, datetime_fmt: Optional[str] = None)

Usage:

  1. Define the schema for your api in python dataclasses.
  2. Add the @unmarshal_response decorator to the api client method to transform the response directly into your defined schema.
    @unmarshal_response(List[Account])
    def get_accounts():
        ...
    
  3. Add the @marshal_request decorator to the api client method to translate the incoming dataclass into the required json for the endpoint:
    @marshal_request()
    def create_account(account: Account):
       ...
    

The marshalling functionality has been provided by: https://github.com/MikeWooster/jsonmarshal More usage examples can be found there.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

api-client-jsonmarshal-0.0.1.tar.gz (3.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page