The short and sweet way to create an API client
Project description
Tiny API Client 🐝
Write JSON API Clients in Python without the fluff, pumped full of syntactic sugar
from tiny_api_client import api_client, get, post, delete
@api_client('https://example.org/api/public/v{version}')
class MyAPIClient:
@get('/users/{user_id}')
def find_user(self, response):
return response
@post('/notes')
def create_note(self, response):
return response
@delete('/notes/{note_id}/attachment/{attachment_id}', version=3)
def delete_note_attachment(self, response):
return response
>>> client = MyClient()
>>> client.find_user(user_id='PeterParker')
{'name': 'Peter', 'surname': 'Parker', ...}
>>> client.create_note(data={'title': 'New Note', 'content': 'Hello World!'})
{'id': ...}
>>> client.delete_note_attachment(node_id=...)
Features
- Instance-scoped
requests.Session()with connection pooling and cookie preservation - JSON is king, but XML and raw responses are fine too
- Endpoints can use GET, POST, PUT, PATCH, DELETE
- Route parameters are optional
- Easy integration with your custom API classes
- Declare endpoints under different API versions
- Can define the API URL at runtime if not available before
- Can set a custom CookieJar to pass with all requests
- Pass along any parameters you would usually pass to requests
- Custom JSON status error handling
- Installable pytest plugin for easy testing
- Excellent support for type checking thanks to a built-in mypy plugin
Installation
pip install tiny-api-client
Documentation
You can find the documentation at https://tiny-api-client.readthedocs.io
License
This software is distributed under the Lesser General Public License v2.1, more information available at the Free Software Foundation.
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 tiny_api_client-1.4.0.tar.gz.
File metadata
- Download URL: tiny_api_client-1.4.0.tar.gz
- Upload date:
- Size: 64.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad6772b611dfc71535800d0db901258f8b0da6ac77e27a71260eaea507e69ed3
|
|
| MD5 |
b95ce4b5ff501285dfa1eeeff9b2e701
|
|
| BLAKE2b-256 |
6cc4b057e8018353448f3372432c2763b0e1f4978bfd6466c03bcae61981573e
|
File details
Details for the file tiny_api_client-1.4.0-py3-none-any.whl.
File metadata
- Download URL: tiny_api_client-1.4.0-py3-none-any.whl
- Upload date:
- Size: 18.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e4af7ad4fcf549b850e46072b4ccd381a11acaef25ca09a61c6370a45bdd404
|
|
| MD5 |
48743017c20c3b91e0a1dad35a935abc
|
|
| BLAKE2b-256 |
32b60a47e06fd0d45b132a035fbc4ff24deb59d93f657e9de37ef591da06187c
|