LeaderData API SDK
Python SDK для работы с API LeaderData.
Установка
pip install leaderdata-sdk
После этого необходимо получить файл openapi.json:
python -m leaderdata update
API периодически меняется и файл openapi.json нужно обновлять для актулизации SDK.
Конфигурация
И импортируемый модуль и интерфейс командной строки для запросов обращаются к API по
адресу https://data.leader-id.ru, этот адрес можно изменить переменными окружения
DSN и SPEC_PATH; где первая задает адрес хоста: проткол, домен, порт; а вторая
путь относительно хоста до openapi.json.
Использование
Методы клиента соответствуют операциям API, и состоят из:
- имя метода – идентификатор операции;
- позиционный аргумент – может быть только один и используется для задания тела запроса;
- именованные аргументы - используются для передачи параметров строки запроса и подстановки переменных в пути, где они необходимы; клиент SDK сам определит какие аргументы чем являются.
Опциональность / обязательность аргументов можно определить из документации.
Идентификатор операции можно получить из документации API LeaderData. Для этого нужно выбрать необходимую операцию и обратить внимание на адресную строку, к примеру ссылка документации на операцию по чтению коллекций будет такой:
https://data.leader-id.ru/api/redoc#operation/collections__list_collections
Где идентификатор операции это: collections__list_collections.
Таймаут на выполнение запроса
По умолчанию равен 5 секундам. Переопределить можно именованным аргументом _timeout
при вызове метода API. Допускается как число (целое / с плавающей точкой) обозначающее
таймут на весь запрос, так и экземпляр класса httpx.Timeout, которым можно задать
таймауты на каждый этап запроса, подробнее об этом объекте и типах таймаутов
по ссылке
Примеры
Инициализация клиента
from leaderdata.api import Client
client = Client(client_id='APP_ID', client_secret='APP_SECRET')
Чтение списка принадлежащих приложению коллекций:
for collection in client.collections__list_collections(is_own=True):
print(f'collection id: {collection.id}, name: {collection.name}')
Создание новой коллекции:
collection = client.collections__create_collection({
'access_type': 'private',
'name': 'Very simple collection',
'description': 'From SDK README.md'
})
print(f'new collection id: {collection.id}')
Чтение созданной только что коллекции:
actual_collection_data = client.collections__read_collection(
collection_id=collection.id
)
print(f'collection current name: {actual_collection_data.name}')
Release files for leaderdata-sdk 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| leaderdata-sdk-0.0.1.tar.gz | 6.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| leaderdata_sdk-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.5 kB
Release files / leaderdata-sdk-0.0.1.tar.gz
| Download URL | leaderdata-sdk-0.0.1.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c2c7e4b57dc5d306c077136918796531e6c09a00f964b0ec5307134a8183cee0
|
|
BLAKE2b-256 checksum How to use checksums |
49d220c72579bb3f141a1a7b1ff386096f6c74bbfe78411835653c4f0382e993
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.3
|
Release files / leaderdata_sdk-0.0.1-py3-none-any.whl
| Download URL | leaderdata_sdk-0.0.1-py3-none-any.whl |
|---|---|
| Size | 8.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f71b3b40f5a4e07473a10e7507ed81fd59a2a9604f807e930f8f266f56aeed1f
|
|
BLAKE2b-256 checksum How to use checksums |
9226e79d104f30f88332266ed794364c538aa513e3d4d0917995e17e1ba8bcdf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.3
|