А library for a REST API client that works with any API that follows somewhat the REST standard.
Project description
Universal REST API Client
- Free software: MIT license
- Documentation: https://universal-api-client.readthedocs.io/en/latest/.
Features
This library is a small REST API client with the following features:
- Url builder - allows you to build a url by natively calling the client's attributes
- HTTP requests - a thin wrapper around the requests library that allows full control of the HTTP requests.
Installation
pip install universal-api-client
Usage
Initialising the client
from universal_api_client import Client
swapi_client = Client(base_url='https://swapi.co/api/')
Building a URL
The url builder is part of the request
(APIRequest
) attribute of the
client.
swapi_client.request.people # <universal_api_client.request.APIRequest at 0x1093c3eb8>
swapi_client.request.people.url # 'https://swapi.co/api/people/'
swapi_client.request.people(identifier=1).url # 'https://swapi.co/api/people/1/'
swapi_client.request.people(identifier='1').url # 'https://swapi.co/api/people/1/'
Making a request
The requests are made by the already built APIRequest
object. The
method call returns the appropriate method call from the requests
library.
response = swapi_client.request.people(identifier='1').get() # <Response [200]>
print(response.status_code) # 200
Authentication
The library allows the use of the requests authentication classes (request.auth).
There are 2 ways to add authentication:
- When initializing the client.
from requests.auth import HTTPBasicAuth
swapi_client = Client(base_url='https://swapi.co/api/', auth=HTTPBasicAuth('user', 'pass'))
- When performing the request (overrides the authentication set in the client).
from requests.auth import HTTPBasicAuth
swapi_client.request.people.get(auth=HTTPBasicAuth('user', 'pass'))
Trailing slash
Some API urls require (or not) a trailing slash at the end of the URL. This can be controlled by the trailing_slash
flag when creating the client:
from universal_api_client import Client
swapi_client = Client(base_url='https://swapi.co/api/', trailing_slash=False)
swapi_client.request.people(identifier='1').url # 'https://swapi.co/api/people/1'
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for universal-api-client-0.2.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64a83dc9582dff1d9445dd7c4999c3e73666e019742fc01799ed3f283b1b1386 |
|
MD5 | e696a0e72727d060a0624c881389b21b |
|
BLAKE2b-256 | 98f523016a567dbd8589085a7a489d32e00c69603db4f33d67d23e6d13201fed |
Hashes for universal_api_client-0.2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 669f84d58583fda630835d92caf967b56dbb6e1e98123b7c21fd0cb80855e5ca |
|
MD5 | aa56c0c0d837621099ced766cfa275e4 |
|
BLAKE2b-256 | 8fe229a006bb693dcac0abe29a046c3b1543e14bd0e9264f105ab5ea51d02c45 |