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.6.tar.gz
(5.9 kB
view details)
File details
Details for the file peace-0.0.6.tar.gz.
File metadata
- Download URL: peace-0.0.6.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eaebd32b5b00523e465fc3af930fa0a5ea476d45b21c2738a75df48c49c8280f
|
|
| MD5 |
e887dbfa28c12dd059983d1ab7b0101d
|
|
| BLAKE2b-256 |
3df807cb5e899d912051cf30b54331208b85eb4ee8a395bb7d8240ce81748d6a
|