Skip to main content

Para visualizar o README em português.

Smart REST Client

PyPI latest PyPI Version PyPI License Docs Open Source? Yes!

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.

  1. Fork the repository on GitHub.

  2. Make a branch off of master and commit your changes to it.

  3. Install requirements. pip install -r requirements-dev.txt

  4. Install pre-commit. pre-commit install

  5. Create a Pull Request with your contribution

Metadata

Release files for smart-rest-client 0.4.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for smart-rest-client 0.4.3
File Size Uploaded
smart-rest-client-0.4.3.tar.gz 61.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for smart-rest-client 0.4.3
File Interpreter ABI Platform
smart_rest_client-0.4.3-py3-none-any.whl Python 3 none any Details

Total release size: 76.8 kB

Release files / smart-rest-client-0.4.3.tar.gz

Download URL smart-rest-client-0.4.3.tar.gz
Size 61.7 kB
Tags Source
SHA-256 checksum
How to use checksums
aa75426101f62802c4d1b9393afa5dc8467ca9956881cce4559c8383467df1ed
BLAKE2b-256 checksum
How to use checksums
1797f58bfa0e6194f2bf723e3d66c16212cd1beb7a6db3007d021f6ca45febb4
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / smart_rest_client-0.4.3-py3-none-any.whl

Download URL smart_rest_client-0.4.3-py3-none-any.whl
Size 15.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3342f0348488fb4c645be17c6e0e2416f0a3bd3b7d72b08d89c708d3145f2e89
BLAKE2b-256 checksum
How to use checksums
9c5eb4c1bb76b65a16385b87a80740c75af435ba4795448f7e5011e83cc6e45b
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

0.4.3 This release

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page