Builder Module
The Builder module provides functionality to dynamically construct API requests from static JSON templates.
- class ABConnect.Builder.APIRequestBuilder(req_type='Regular', base_data=None)[source]
Bases:
objectBuilder for API requests using static JSON configurations.
APIRequestBuilder
- class ABConnect.Builder.APIRequestBuilder(req_type='Regular', base_data=None)[source]
Bases:
objectBuilder for API requests using static JSON configurations.
- __init__(req_type='Regular', base_data=None)[source]
- load(base_data)[source]
Loads new base data into the builder.
- Return type:
- update(path, value)[source]
Updates a nested dictionary or list structure by setting a value at the specified path.
- Parameters:
path (
Union[str,List[str]]) – Dot-separated keys or list of keys/indexes.value (
Any) – The value to set.
- Returns:
The updated instance.
- Return type:
Usage Examples
Basic Request Building
from ABConnect.Builder import APIRequestBuilder
builder = APIRequestBuilder()
# Build a regular job request
request = builder.build(
customer_id='CUST123',
job_type='Regular',
origin_address={
'street': '123 Main St',
'city': 'New York',
'state': 'NY',
'zip': '10001'
},
destination_address={
'street': '456 Oak Ave',
'city': 'Los Angeles',
'state': 'CA',
'zip': '90001'
}
)
3PL Job Request
# Build a 3PL job request with extra containers
request = builder.build(
customer_id='3PL_CUST',
job_type='3PL',
extra_containers=True,
container_data={
'type': 'special',
'count': 2
}
)
Template Structure
The Builder uses JSON templates stored in the base/ directory:
simple_request.json- Default request templateextra_containers.json- Additional container configurations for 3PL requestscompanies.json- Company reference datastatuses.json- Status reference data