REST client
Project description
A REST client - inspired by restmod for javascript.
Test status
Quick start for contributing
virtualenv -p `which python3` virtualenv source virtualenv/bin/activate pip install -r requirements.txt pip install -r dev_requirements.txt nosetests
Usage
from peace import PeaceMaker def set_authorization_header(request): request.headers['Authorization'] = authorization_value return request maker = PeaceMaker('http://api.example.com') Employee = maker.make( 'Employee', '/employees' has: { 'user': maker.make('Company'), }, intercept: set_authorization_header, ) employees = Employee.search(last_name='Smith') bob = Employee.get('100') bob.last_name = 'Smith-Jones' bob.save() bob.refresh() company = bob.company print(company.name) # prints name
Peace requires the REST API to conform to a particular structure. A JSON response should look something like this:
{ "data": { "id": 100, "first_name": "Bob", "last_name": "Smith", }, "links": { "self": {"href": "/employees/100"}, "company": { "href": "/companies/5", "data": { "name": "Big Corp", }, }, }, }
Links can be followed (e.g. bob.company). Initially, the data returned in the original request will be immediately available, but if you try to access other fields that a direct load is required to make available, (i.e. were not in the original response), then a load of the linked object will be done first (e.g. GET /companies/5).
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
peace-0.0.8.tar.gz
(7.0 kB
view details)
File details
Details for the file peace-0.0.8.tar.gz
.
File metadata
- Download URL: peace-0.0.8.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f47b4695f85bba7c35064bcbf4024129f0a710a627eb8bee783782cc66032f1 |
|
MD5 | 6c316aa0e659edd6905e545b63acca5e |
|
BLAKE2b-256 | cdd45dddad716e662a57b3660905fc24fe17b0d967a23d950e4d923677f5a1ea |