HTTP REST client, simplified for Python
Project description
Quickly and easily access any REST or REST-like API.
Here is a quick example:
GET /your/api/{param}/call
import python_http_client
global_headers = {"Authorization": "Basic XXXXXXX"}
client = Client(host='base_url', request_headers=global_headers)
client.your.api._(param).call.get()
print response.status_code
print response.response_headers
print response.response_body
POST /your/api/{param}/call with headers, query parameters and a request body with versioning.
import python_http_client
global_headers = {"Authorization": "Basic XXXXXXX"}
client = Client(host='base_url', request_headers=global_headers)
query_params={"hello":0, "world":1}
request_headers={"X-Test": "test"}
data={"some": 1, "awesome", 2, "data", 3}
response = client.your.api._(param).call.post(request_body=data,
query_params=query_params,
request_headers=request_headers)
print response.status_code
print response.response_headers
print response.response_body
Installation
pip install python_http_client
or
easy_install python_http_client
Usage
Following is an example using SendGrid. You can get your free account here.
First, update your .env with your SENDGRID_API_KEY and HOST. For this example HOST=https://api.sendgrid.com.
Following is an abridged example, here is the full working code.
import os
import json
import python_http_client
path_to_env = os.path.abspath(os.path.dirname(__file__))
python_http_client.Config(path_to_env)
host = os.environ.get('HOST')
api_key = os.environ.get('SENDGRID_API_KEY')
request_headers = {"Authorization": 'Bearer {0}'.format(api_key), "Content-Type": "application/json"}
version = 3 # note that we could also do client.version(3) to set the version for each endpoint
client = python_http_client.Client(host=host,
request_headers=request_headers,
version=version)
# GET collection
response = client.api_keys.get()
# POST
data = {
"name": "My API Key",
"scopes": [
"mail.send",
"alerts.create",
"alerts.read"
]
}
response = client.api_keys.post(request_body=data)
json_response = json.loads(response.response_body)
api_key_id = json_response['api_key_id']
# GET single
response = client.api_keys._(api_key_id).get()
# PATCH
data = {
"name": "A New Hope"
}
response = client.api_keys._(api_key_id).patch(request_body=data)
# PUT
data = {
"name": "A New Hope",
"scopes": [
"user.profile.read",
"user.profile.update"
]
}
response = client.api_keys._(api_key_id).put(request_body=data)
# DELETE
response = client.api_keys._(api_key_id).delete()
Announcements
[2016.02.25] - We hit version 1!
Roadmap
How to Contribute
We encourage contribution to our libraries, please see our CONTRIBUTING guide for details.
Thanks
We were inspired by the work done on birdy and universalclient.
About
[SendGrid Logo] (https://assets3.sendgrid.com/mkt/assets/logos_brands/small/sglogo_2015_blue-9c87423c2ff2ff393ebce1ab3bd018a4.png)
python-http-client is guided and supported by the SendGrid Developer Experience Team.
python-http-client is maintained and funded by SendGrid, Inc. The names and logos for python-http-client are trademarks of SendGrid, Inc.
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 python_http_client-1.2.4.tar.gz
.
File metadata
- Download URL: python_http_client-1.2.4.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99f47c173d85769390c13f9fc712046ed1de7686e33466da6ad7687f707ebcae |
|
MD5 | e45e38912c784c9050e0e5699ac3a232 |
|
BLAKE2b-256 | fc7f38ed0e29a4c2ef0fba00bf48266e7e08bc28ed91f852a70ab37a19d59915 |
File details
Details for the file python_http_client-1.2.4-py2-none-any.whl
.
File metadata
- Download URL: python_http_client-1.2.4-py2-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11b60d3e479df89b841eb3f865bfca4c8beebef5a62150a4c394ca509dfb084b |
|
MD5 | 8f83b4664588491684b66e10aca47bb1 |
|
BLAKE2b-256 | 324c9efb45300100f993b111e69b30b07906aa21ebd9e8a2fc0d8398e0ee44ae |