An HTTP client for making requests to Vonage APIs.
Project description
Vonage HTTP Client Package
This Python package provides a synchronous HTTP client for sending authenticated requests to Vonage APIs.
This package (vonage-http-client
) is used by the vonage
Python package and SDK so doesn't require manual installation or config unless you're using this package independently of a SDK.
The HttpClient
class is initialized with an instance of the Auth
class for credentials, an optional class of HTTP client options, and an optional SDK version (this is provided automatically when using this module via an SDK).
The HttpClientOptions
class defines the options for the HTTP client, including the API and REST hosts, timeout, pool connections, pool max size, and max retries.
This package also includes an Auth
class that allows you to manage API key- and secret-based authentication as well as JSON Web Token (JWT) authentication.
For full API documentation refer to the Vonage Developer documentation.
Installation (if not using via an SDK)
You can install the package using pip:
pip install vonage-http-client
Usage
from vonage_http_client import HttpClient, HttpClientOptions
from vonage_http_client.auth import Auth
# Create an Auth instance
auth = Auth(api_key='your_api_key', api_secret='your_api_secret')
# Create HttpClientOptions instance
options = HttpClientOptions(api_host='api.nexmo.com', timeout=30)
# Create a HttpClient instance
client = HttpClient(auth=auth, http_client_options=options)
# Make a GET request
response = client.get(host='api.nexmo.com', request_path='/v1/messages')
# Make a POST request
response = client.post(host='api.nexmo.com', request_path='/v1/messages', params={'key': 'value'})
Get the Last Request and Last Response from the HTTP Client
The HttpClient
class exposes two properties, last_request
and last_response
that cache the last sent request and response.
# Get last request, has type requests.PreparedRequest
request = client.last_request
# Get last response, has type requests.Response
response = client.last_response
Appending to the User-Agent Header
The HttpClient
class also supports appending additional information to the User-Agent header via the append_to_user_agent method:
client.append_to_user_agent('additional_info')
Changing the Authentication Method Used
The HttpClient
class automatically handles JWT and basic authentication based on the Auth instance provided. It uses JWT authentication by default, but you can specify the authentication type when making a request:
# Use basic authentication for this request
response = client.get(host='api.nexmo.com', request_path='/v1/messages', auth_type='basic')
Catching errors
Error objects are exposed in the package scope, so you can catch errors like this:
from vonage_http_client import HttpRequestError
try:
client.post(...)
except HttpRequestError:
...
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file vonage_http_client-1.4.2.tar.gz
.
File metadata
- Download URL: vonage_http_client-1.4.2.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07b6cec89c8df9214ccabc59257ff6f7c44bfcd33ea33847ec9cb20be770d7f4 |
|
MD5 | 47ae0f1a6fb6dd984579ad25db2b3564 |
|
BLAKE2b-256 | 90731c96acd9c1151a4e43aed6cc5363f7b142011adb7feda0dba72c0186da7e |
File details
Details for the file vonage_http_client-1.4.2-py3-none-any.whl
.
File metadata
- Download URL: vonage_http_client-1.4.2-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ce3358bcc2ce1bdc2b5ae397998cb2ad66cc0d2ea94fd088e4a82474a06c94b |
|
MD5 | f41f88909ab0a662650e851ba6f63123 |
|
BLAKE2b-256 | 4f6ad0fe7d9db2d339dbb5f70f26c0cd43d13a9c34923b96a9e9227428e8c715 |