Python wrapper to perform requests to Rest APIs using objects to request endpoints and their methods
Project description
Para visualizar o README em português.
Smart REST Client
Python wrapper to perform requests to Rest APIs using objects to request endpoints and their methods
Requirements
Python 3.x
How to install
You can get Smart Rest Client by using pip:
$ pip install smart-rest-client
If you want to install it from source, grab the git repository from GitHub and run setup.py:
$ git clone git@github.com:rhenter/smart-rest-client.git
$ cd smart-rest-client
$ python setup.py install
Settings
Create a clients.py file in the core folder of your project, if you haven’t, created it within your project folder to be simple to be imported from anywhere in the project with the following content:
from smart_rest_client.client import api_client_factory
from smart_rest_client.settings import APIClientSettings
API_CLIENT_SETTINGS = {
'API': [
{
'NAME': 'production',
'BASE_URL': 'https://example.com',
'ENDPOINTS': [
'/v1/order/orders',
'/v1/user/users',
...
],
'AUTHENTICATION_ACCESS_TOKEN': 'TOKEN'
},
{
'NAME': 'localhost',
'BASE_URL': 'http://localhost:8001',
'ENDPOINTS': [
'/v1/order/orders',
'/v1/user/users',
...
],
'AUTHENTICATION_ACCESS_TOKEN': 'TOKEN'
}
]
}
api_settings = APIClientSettings(API_CLIENT_SETTINGS)
api_client = api_client_factory('production', api_settings)
Now we are going to list the data using the normal Django template system
Let’s imagine which client is located in a folder called clients on project folder (folder containing the settings.py file)
Usage
For each endpoint the client Factory will create the follow structure:
Example to /user/users/
Create:
usage: api_client.user.users.create(data=data)
return: Response of POST of data (dict) to /user/users/
List:
usage: api_client.user.users.list()
return: Response of GET to /user/users/
Get/Retrieve/Detail:
usage: api_client.user.users.get(id=123)
return: Response of GET to /user/users/123/
Update:
usage: api_client.user.users.update(id=123, data=data, partial=False)
return: the response of UPDATE or PATCH of data (dict) to /user/users/123/
Delete:
usage: api_client.user.users.delete(id=123)
return: Response of GET to /user/users/123/
Example
Import the api_client from your client file
>> from client import api_client
>> result = api_client.user.users.list()
>>
>> # Use the result as object
>> print(result.as_obj())
UserUsers(
previous=None,
count=1,
next=None,
results=[
NamelessModel(occupation=None, full_name='Admin System',
image=None, cpf='', is_superuser=True, cellphone='', email='', sex=None, username='admin', birthdate='09/09/1999',
logged_as='', id=1, is_temp=False, is_active=True)
]
)
>>
>> # Use the result as dict
>> print(result.as_dict())
{'count': 1,
'next': None,
'previous': None,
'results': [{'id': 1,
'username': 'admin',
'full_name': 'Admin System',
'sex': None,
'birthdate': '09/09/1999',
'cpf': '',
'cellphone': '',
'email': '',
'image': None,
'occupation': None,
'logged_as': '',
'is_superuser': True,
'is_active': True,
'is_temp': False}
]
}
Documentation
Check out the latest smart-rest-client documentation at Github Pages
Contributing
Please send pull requests, very much appreciated.
Fork the repository on GitHub.
Make a branch off of master and commit your changes to it.
Install requirements. pip install -r requirements-dev.txt
Install pre-commit. pre-commit install
Create a Pull Request with your contribution
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
File details
Details for the file smart-rest-client-0.4.3.tar.gz
.
File metadata
- Download URL: smart-rest-client-0.4.3.tar.gz
- Upload date:
- Size: 61.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa75426101f62802c4d1b9393afa5dc8467ca9956881cce4559c8383467df1ed |
|
MD5 | c10c9adcea253831b7f668543af87bed |
|
BLAKE2b-256 | 1797f58bfa0e6194f2bf723e3d66c16212cd1beb7a6db3007d021f6ca45febb4 |
File details
Details for the file smart_rest_client-0.4.3-py3-none-any.whl
.
File metadata
- Download URL: smart_rest_client-0.4.3-py3-none-any.whl
- Upload date:
- Size: 15.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3342f0348488fb4c645be17c6e0e2416f0a3bd3b7d72b08d89c708d3145f2e89 |
|
MD5 | 634f2af3db5ee78d71c5b363e9e2484e |
|
BLAKE2b-256 | 9c5eb4c1bb76b65a16385b87a80740c75af435ba4795448f7e5011e83cc6e45b |