An expressive clean way to interact with RESTful APIs.
Project description
An expressive clean way to interact with REsTful APIs. It was inspired by zmallen’s pygraylog.
Chain is a small enhancement to the popular requests package. By referencing the endpoints as attributes to the client, it effectively “chains” the endpoints together, building the target url.
Chain is an attempt to make REsTful API clients look more like python objects, by removing the hardcoded URL strings in the code.
Chain uses the requests package as its http client, keeping its parameters and response objects. If you already use requests as your http client, then adopting chain would be easy.
Usage
Lets take for example this API:
# create a new client for the API
>>> import chain
>>> blogs = chain.Client('http://jsonplaceholder.typicode.com')
# if you want the posts:
>>> response = blogs.get.posts()
# the response is the response object from the requests package
>>> print response.json()
Numbers and special characters are also supported using dictionary notation
# Get the first post
>>> response = blogs.get.posts[1]()
>>> print response.json()
chain parameters are requests.requests parameters:
# parameters are the same as requests.requests parameters
>>> response = blogs.get.comments(params={'postId': '1'})
>>> print response.json()
>>> comment = {'postId': 1, 'id':501, 'name':'chain', 'email':'chain@code.com', 'body':'meh.'}
>>> response = blogs.post.comments(json=comment)
Installation
pip install chain_py
Testing
python setup.py test
Or:
tox
Compatibility
Works with Python version 2.7, 3.3, 3.4, 3.5 and 3.6
Licence
MIT licensed. Requests is licensed by the Apache License. See full LICENSE
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
File details
Details for the file chain-py-0.1.7.tar.gz
.
File metadata
- Download URL: chain-py-0.1.7.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.5.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbb6570a898947b973e2277e18991d248218c96b9a212e1829c5d8661a9d673d |
|
MD5 | 73d9635734aa1914b66379437a7388a5 |
|
BLAKE2b-256 | bd475a434f0f0eeb3b7e48547d1ef8c632caff108f365d7c1631c18f78a17d32 |