Source code for frater.client.api

import requests


[docs]class API: def __init__(self, host, port, protocol='http://'): self.host = host self.port = port self.protocol = protocol @property def api_url(self): return f'{self.protocol}{self.host}:{self.port}'
[docs] def build_endpoint_url(self, endpoint: str): if not endpoint.startswith('/'): endpoint = '/' + endpoint return f'{self.api_url}{endpoint}'
[docs] def get(self, endpoint: str, params=None): endpoint_url = self.build_endpoint_url(endpoint) response = requests.get(endpoint_url, params=params) return response.json()
[docs] def post(self, endpoint: str, data: dict): endpoint_url = self.build_endpoint_url(endpoint) response = requests.post(endpoint_url, json=data) return response.json()
[docs] def delete(self, endpoint: str, data: dict): endpoint_url = self.build_endpoint_url(endpoint) response = requests.delete(endpoint_url, json=data) return response.json()
[docs] def patch(self, endpoint: str, data: dict): endpoint_url = self.build_endpoint_url(endpoint) response = requests.patch(endpoint_url, json=data) return response.json()
[docs] def put(self, endpoint: str, data: dict): endpoint_url = self.build_endpoint_url(endpoint) response = requests.put(endpoint_url, json=data) return response.json()