Python’s requests library provides all necessary classes and methods to query internet resources, including REST server.
Client class
from requests import Request, Session, exceptions
import json
class Client:
def __init__(self, base_url):
self.base_url = base_url
def query(self, uri, method, body):
parameter = {}
if body is not None:
parameter.update(body)
r = self._make_request(uri, method, parameter)
rp = r.prepare()
s = Session()
resp = s.send(rp)
return json.loads(resp.text)
def _make_request(self, uri, method, body):
headers = {
'Accept': 'application/json'
}
r = Request(method.upper(), self.base_url + uri, headers=headers)
if body:
if r.method in ["POST", "PUT", "PATH"]:
r.json = body
else:
r.params = body
return r
Use the class
client = Client("http://api-domain.com/")
resp = client.query('login', 'POST', {'username': 'tester', 'password': 'tester'})