Skip to content

Библиотека для удобной работы с API МойСклад

License

Notifications You must be signed in to change notification settings

fogstream/fs-moysklad-api

Repository files navigation

MoySklad

PyPI Version

Описание

Библиотека упрощающая работу с API МойСклад.

Возможности

  • Конструктор фильтров и запросов
  • Репозиторй API эндпоинтов
  • Возможность работы с JSON и POS API

Конструктор запросов

Фильтрация

Filter().exists('email').eq('archived', False).exists('name', False)

Комбинирование фильтров

new_filter = Filter().exists('email') + Filter().exists('name', False)

Документация по фильтрам

Сортировка

Ordering().asc('id').desc('name')

Документация сортировки

Контекстный поиск

Search('петров')

Документация контекстного поиска

Раскрытие вложенных сущностей

Expand('owner', 'owner.group', 'state')

Документация

Параметры фильтрации выборки

Select(limit=1, offset=0, updated_to=datetime.now(), updated_by='uuid')

Документация

Примеры кода

Авторизация и получения контрагентов с применением фильтрации

from moysklad.api import MoySklad
from moysklad.queries import Expand, Filter, Ordering, Select, Search, Query


sklad = MoySklad.get_instance('login', 'password')
client = sklad.get_client()
methods = sklad.get_methods()

response = client.get(
    method=methods.get_list_url('counterparty'),
    query=Query(
        Filter().exists('email').eq('archived', False),
        Search('петров'),
        Expand('owner', 'owner.group'),
        Ordering().asc('id').desc('name'),
        Select(limit=1),
    ),
)
print(response.meta)
print(response.context)
print(response.rows[0])

Использование прокси

sklad = MoySklad.get_instance('login', 'password')
client = sklad.get_client()

proxies = {
    'http': 'type://user:pass@host:port',
    'https:': 'type://user:pass@host:port',
}
client.set_proxies(proxies)

Для использования SOCKS5 прокси необходимо установить библиотеку PySocks.