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
|