API Client
Project description
REST-CLIENT
Setup a client in minutes
from rest_client.base import BaseUrlConfig, ApiConfiguration, RequestConfig, Client
endpoint_config: BaseUrlConfig = BaseUrlConfig('https://reqres.in/api/')
@ApiConfiguration(endpoints=[
RequestConfig('users', 'list_users'),
RequestConfig('users/{}', 'get_user'),
RequestConfig('register', 'register_user', 'POST')
], base_url_config=endpoint_config)
class ExampleClient(Client):
pass
This makes available these methods on ExampleClient
- list_users
- get_user
- register_user
client = ExampleClient()
list_users_response = client.list_users()
get_user_response = client.get_user(3)
register_user_response = client.register_user(email="eve.holt@reqres.in", password="pistol")
You can also create the client from json, or a dict:
from rest_client.base import DictApiConfiguration, BaseUrlConfig, Client
endpoint_config: BaseUrlConfig = BaseUrlConfig('https://reqres.in/api/')
@DictApiConfiguration(endpoints=[{
'path': 'users',
'name': 'list_users',
}], base_url_config=endpoint_config)
class MyClient(Client):
pass
Authentication
You can pass custom authentication through the authentication_handler
property. Authentication handlers should extend AuthBase from requests.auth
For example:
from rest_client.base import BaseUrlConfig, ApiConfiguration, RequestConfig, Client, BearerTokenAuth
auth_endpoint_config: BaseUrlConfig = BaseUrlConfig('https://gorest.co.in/public/v1/')
@ApiConfiguration(
endpoints=[
RequestConfig('users', 'register_user', 'POST'),
],
base_url_config=auth_endpoint_config)
class AuthClient(Client):
pass
auth_client = AuthClient(
authentication_handler=BearerTokenAuth('token')
)
Please note:
This is a work in progress and completely new. Contributions are very welcome.
Project details
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
Close
Hashes for rapid_rest_client-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79446d6715949bdddaea0d916db43fa6ad9dd2f039bd7996451bd2cd12d71d2a |
|
MD5 | 4e37033a080f230fc8473f382b1321a5 |
|
BLAKE2b-256 | 637e023ea2ffbd62121b813d466526cc4774e54d8b802cad2a041e90a711246b |