Thanks to visit codestin.com
Credit goes to github.com

Skip to content

sansal54/python-http-client

 
 

Repository files navigation

Travis Badge Code Climate PyPi Versionse

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.

Then, update the path to the .env file.

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

Milestones

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.

About

HTTP REST client, simplified for Python

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.2%
  • Shell 0.8%