Async python wrapper for KeepinCRM API
Project description
Async Python Wrapper for KeepinCRM API
This is an async Python wrapper for the KeepinCRM API that allows you to interact with the API using simple and convenient methods. The wrapper provides a KeepinClient
class with async methods for making HTTP requests and retrieving data from the API.
Installation
You can install the library using pip:
pip install aiokeepin
Usage
To use the KeepinCRM async Python wrapper, import the KeepinClient
class from the library:
from aiokeepin import KeepinClient
Initializing the Client
Create an instance of the KeepinClient
class by providing your API key:
client = KeepinClient(api_key='YOUR_API_KEY')
Making API Requests
The KeepinClient
instance provides async methods that correspond to the different HTTP request methods (GET
, POST
, PATCH
, PUT
, DELETE
). Each method returns a dictionary containing the response from the API.
GET Request Example
response = await client.get('/clients')
print(response)
POST Request Example
data = {
"email": "pib@example.com",
"company": "Назва чи ПІБ",
"lead": True,
"source_id": 5,
"status_id": 1,
"phones": [
"+380000000001"
],
"tag_names": [
"VIP"
],
"contacts_attributes": [
{
"fullname": "Прізвище Імʼя По батькові",
"phones": [
"+380000000002"
],
"custom_fields": [
{
"name": "Посада",
"value": "Директор"
}
]
}
]
}
response = await client.post('/clients', data=data)
print(response)
PATCH Request Example
data = {
"email": "new_email@example.com"
}
response = await client.patch('/clients/{client_id}', data=data)
print(response)
PUT Request Example
data = {
"email": "updated_email@example.com"
}
response = await client.put('/clients/{client_id}', data=data)
print(response)
DELETE Request Example
response = await client.delete('/clients/{client_id}')
print(response)
GET Paginated Items Example
response = await client.get_paginated_items('/clients')
Error Handling
In case of an error response from the KeepinCRM API, an exception will be raised. The exceptions provided by the aiokeepin library inherit from the base KeepinException
class. There are several specific exceptions available for different types of errors:
-
KeepinStatusError
: This exception is raised for non-2xx status codes. It contains thestatus_code
andresponse
attributes, providing information about the error. -
InvalidAPIKeyError
: This exception is raised specifically for an invalid API key. -
ValidationError
: This exception is raised for invalid data. -
NotFoundError
: This exception is raised when the requested resource is not found. -
InternalServerError
: This exception is raised for internal server errors.
When making API requests, you can handle exceptions using try-except blocks to capture and handle specific types of errors. Here's an example:
from aiokeepin.exceptions import KeepinStatusError, InvalidAPIKeyError
try:
response = await client.get('/nonexistent_endpoint')
except InvalidAPIKeyError:
print("Invalid API key provided.")
except KeepinStatusError as e:
print(f"Error: {e.status_code} - {e.response}")
You can customize the exception handling based on your specific needs. By catching the appropriate exceptions, you can handle different error scenarios and provide appropriate error messages or take specific actions. Make sure to refer to the documentation for the KeepinCRM API for more details on the possible error responses and their corresponding status codes.
Documentation
For detailed information on the KeepinCRM API, refer to the official API documentation: KeepinCRM API Documentation
License
This project is licensed under the MIT License. See the LICENSE file for more information.
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
Hashes for aiokeepin-0.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e59a8731412a2c14cc50ec82acf35b9e682b1aea2bf44b930519cfed0eecf7f |
|
MD5 | 9328cc9fad01b65597ee5cc4d250896a |
|
BLAKE2b-256 | e6727be7ea5ef8e29413c9eb44ae5a6be830e858196f9ffe4d92588a52306ef0 |