Catalog PyPI
PACKAGE EXPLORERView in registry

adsk-platform-httpclient

PyPI

Autodesk Platform Services: shared HTTP client and authentication utilities for Kiota-based SDKs

apsautodeskhttpclientkiotasdk
Versions collected1
Direct dependencies3From release 0.2.10
Last observed20 Oct, 19:53 UTC

README

Version 0.2.10 documentation

adsk-platform-httpclient

Shared HTTP client, authentication, and middleware utilities for Autodesk Platform Services Python SDKs.

This package provides the foundational components used by all adsk-platform-* SDK packages.

Installation

pip install adsk-platform-httpclient

Note: You typically don't need to install this package directly. It's automatically included as a dependency of the SDK packages (e.g., adsk-platform-acc, adsk-platform-data-management).

Components

HttpClientFactory

Creates pre-configured httpx.AsyncClient instances and Kiota request adapters with bearer-token authentication and the custom middleware pipeline.

from autodesk_common_httpclient import HttpClientFactory

async def get_access_token() -> str:
    return "YOUR_ACCESS_TOKEN"

# Create a Kiota request adapter with authentication + middleware
adapter = HttpClientFactory.create_adapter(get_access_token)

# Or provide your own httpx client
import httpx
custom_client = httpx.AsyncClient(timeout=60.0)
adapter = HttpClientFactory.create_adapter(get_access_token, http_client=custom_client)

AccessTokenProviderCallback

Wraps an async callback into a Kiota-compatible AccessTokenProvider.

from autodesk_common_httpclient import AccessTokenProviderCallback

provider = AccessTokenProviderCallback(get_access_token)

Custom Middleware

The package includes three custom middleware handlers that are automatically added to the HTTP pipeline, matching the C# Autodesk.Common.HttpClientLibrary.Middleware:

ErrorHandler

Raises an httpx.HTTPStatusError when the HTTP response has a non-success status code (4xx/5xx). Enabled by default.

from autodesk_common_httpclient import ErrorHandlerOption

# Disable for a specific request
error_option = ErrorHandlerOption(enabled=False)

QueryParameterHandler

Appends or overwrites query parameters on every outgoing request. Useful for injecting API versions, region codes, or tracking identifiers.

from autodesk_common_httpclient import QueryParameterHandlerOption

query_option = QueryParameterHandlerOption(query_parameters={"region": "US"})

RateLimitingHandler

Limits the number of concurrent requests per endpoint within a sliding time window. Disabled by default.

from autodesk_common_httpclient import RateLimitingHandlerOption

# Allow max 10 requests per endpoint per 60 seconds
rate_option = RateLimitingHandlerOption()
rate_option.set_rate_limit(max_requests=10, time_window_seconds=60.0)

Creating a client with rate limiting

from autodesk_common_httpclient import HttpClientFactory

# Create an HTTP client with rate limiting enabled
client = HttpClientFactory.create_with_rate_limit(
    max_requests=10,
    time_window_seconds=60.0,
)

# Use it with any SDK client
adapter = HttpClientFactory.create_adapter(get_access_token, http_client=client)

Middleware Pipeline Order

The middleware is executed in this order (matching the C# implementation):

  1. Kiota defaults — Redirect, Retry, Parameters Name Decoding, URL Replace, User Agent, Headers Inspection
  2. RateLimitingHandler — Per-endpoint rate limiting
  3. QueryParameterHandler — Query parameter injection
  4. ErrorHandler — Error response detection

Requirements

  • Python 3.10 or later

License

This project is licensed under the MIT License.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.2.1023 Feb 20263

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
autodesk/aps-sdk-kiota

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:53 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:ad8f1126bd4b276b6c09ede790eb59ecc2fe6ca0f08f83132f5436537f238ffc