А 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file universal-api-client-0.2.0.tar.gz.
File metadata
- Download URL: universal-api-client-0.2.0.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64a83dc9582dff1d9445dd7c4999c3e73666e019742fc01799ed3f283b1b1386
|
|
| MD5 |
e696a0e72727d060a0624c881389b21b
|
|
| BLAKE2b-256 |
98f523016a567dbd8589085a7a489d32e00c69603db4f33d67d23e6d13201fed
|
File details
Details for the file universal_api_client-0.2.0-py2.py3-none-any.whl.
File metadata
- Download URL: universal_api_client-0.2.0-py2.py3-none-any.whl
- Upload date:
- Size: 5.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
669f84d58583fda630835d92caf967b56dbb6e1e98123b7c21fd0cb80855e5ca
|
|
| MD5 |
aa56c0c0d837621099ced766cfa275e4
|
|
| BLAKE2b-256 |
8fe229a006bb693dcac0abe29a046c3b1543e14bd0e9264f105ab5ea51d02c45
|