Generic Connector so you can easily create simple and readable classes for accessing APIs.
Project description
Base API Connector
Helps create a simple API Connector where all you have to do is define the resources and possible commands.
Instructions
Using the Module
First import the GenericAPIConnector class:
from base_api_connector import GenericAPIConnector
Then, define a base_api_url and resource fields like this:
class ImplementedAPIConnector(GenericAPIConnector):
base_api_url = 'http://127.0.0.1:8000/notes-backend/'
reports = APIResource(('create', 'retrieve', 'update'))
users = APIResource('all')
That will generate the following attributes when you use the class:
conn = ImplementedAPIConnector()
conn.reports.create(data)
conn.reports.retrieve(pk)
conn.reports update(pk, data)
conn.users.list()
conn.users.create(data)
conn.users.retrieve(pk)
conn.users.update(pk, data)
conn.users.delete(pk)
Asyncio
You can tell tell your resource fields that they should be accessed with asyncio per default:
class ImplementedAPIConnector(GenericAPIConnector):
# ...
users = APIResource('all', is_async=True)
and then use it in an async metho as follows:
async def create_user(user):
r = await conn.user.create(user)
data = await r.json()
# ...
Alternatively, you can change switch to async in-line as well:
# ...
r = await conn.reports(is_async=True).list()
# ...
or the other way around:
r = conn.user(is_async=False).list()
Using The Returned Object
The methods of GenericAPIConnector return a regular Response object from the requests module. See requests Documentation for Response for more details.
Using AsDictObject (WIP)
If you want to define how a resource looks only once, import AsDictObject:
import datetime
from base_api_connecotr import AsDictObject
class CreateUsersResourceObject(AsDictObject):
name = None # None will not pass the field in the request
created = datetime.datetime.now # use methods to set defaults like this
created_for_app = 'readme_example'
And then use it like this:
user = CreateUsersResourceObject():
user.name = 'readme user'
conn.users.create(user)
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 Distributions
Built Distribution
Hashes for base_api_connector-0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b86354024f705ddd22f73ce64e4ba01d37689fea8516cd652dba256b81c6467 |
|
MD5 | 8ea2449ee71508b5744716ec8656a454 |
|
BLAKE2b-256 | 370afe9eaaf05cce8d6f93a70139a3b6c859f9633d350c6551c1743551d4dc81 |