Skip to content

cdumay/cdumay-rest-client

Repository files navigation

Latest Version Latest version Documentation Status Tests Lint Coverage badge

cdumay-rest-client

This library is a basic REST client with exception formatting.

Quickstart

First, install cdumay-rest-client using pip:

$ pip install cdumay-rest-client

Next, add a RESTClient instance to your code:

import json, sys
from cdumay_rest_client.client import RESTClient

client = RESTClient(server="http://jsonplaceholder.typicode.com")
json.dump(
    client.do_request(method="GET", path="/posts/1"),
    sys.stdout,
    sort_keys=True,
    indent=4,
    separators=(',', ': ')
)

Result:

{
    "body": "quia et suscipit\nsuscipit recusandae [...]",
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "userId": 1
}

Exception

You can use marshmallow to serialize exceptions:

import json, sys
from cdumay_rest_client.client import RESTClient
from cdumay_http_client.exceptions import HTTPException, HTTPExceptionValidator

try:
    client = RESTClient(server="http://jsonplaceholder.typicode.com")
    data = client.do_request(method="GET", path="/me")
except HTTPException as exc:
    data = HTTPExceptionValidator().dump(exc).data

json.dump(data, sys.stdout, sort_keys=True, indent=4, separators=(',', ': '))

Result:

{
    "code": 404,
    "extra": {},
    "message": "Not Found"
}

License

Licensed under BSD 3-Clause License or https://opensource.org/licenses/BSD-3-Clause.