Skip to main content

REST client

Project description

A REST client - inspired by restmod for javascript.

Test status

Codeship Status for garymonson/peace

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)

Uploaded Source

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

Hashes for peace-0.0.8.tar.gz
Algorithm Hash digest
SHA256 8f47b4695f85bba7c35064bcbf4024129f0a710a627eb8bee783782cc66032f1
MD5 6c316aa0e659edd6905e545b63acca5e
BLAKE2b-256 cdd45dddad716e662a57b3660905fc24fe17b0d967a23d950e4d923677f5a1ea

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page