Skip to main content

Thin wrapper for the Unisender Go API

Project description

Unisender Go API

Библиотека Unisender Go API упрощает работу с веб API Unisender Go. Библиотека предоставляет тонкую обёртку над HTTPX: она добавляет к обычным возможностям HTTPX свои схемы данных, а также удобные часто используемые функции, но не мешает, при необходимости, спускаться ниже на уровень HTTP-запросов.

Документация к API Unisender Go.

Ключевые возможности библиотеки

Ключевые возможности библиотеки Unisender Go API:

  • Готовый механизм авторизации
  • Поддержка синхронных и асинхронных запросов к API
  • Доступ к API из любого места в коде через contextvars
  • Строгая валидация данных перед отправкой запросов к API
  • Строгая валидация данных при получении данных от API
  • Наглядные схемы данных для всех типов запросов и ответов к API с цитатами из оф.документации к API
  • Подробная отладочная информация по взаимодействию с API
  • Возможность добавлять новые API endpoints по мере их появления в Unisender Go прямо из внешнего прикладного кода

Пример использования

Пример использования синхронного клиента для отправки письма на адрес recepient@example.com:

from unisender_go_api import SyncClient, SendRequest

with SyncClient.setup('place-your-token-here'):
    request = SendRequest(
        message={
            "recipients": [
                {"email": "recepient@example.com"},
            ],
            "body": {
                "html": "<b>Hello, username!</b>",
            },
            "subject": "Greetings to you",
            "from_email": "mailing@dvmn.org",
        },
    )
    request.send()

Известные ограничения

Временные ограничения:

  • Из всем методов API реализован только send, и то ограничениями:
    • Не поддерживается recipients[].metadata
    • Не поддерживается global_metadata
    • Не поддерживается bypass_global
    • Не поддерживается bypass_unavailable
    • Не поддерживается bypass_unsubscribed
    • Не поддерживается bypass_complained
    • Не поддерживается headers
    • Не поддерживается options
  • Не реализован асинхронный клиент
  • Не реализованы shortcuts для упрощённого доступа к API
  • Из двух серверов Unisender Go поддерживается только один — https://go1.unisender.ru/ru/transactional/api/

Исключения

При работе с API библиотека Unisender Go API API выкидывает несколько типов исключений:

  • UnisenderGoError и его подтипы, см. файл unisender_go_api/exceptions.py
  • httpx.HTTPError
  • pydantic.ValidationError — только при подготовке данных исходящего запроса к API, но не при обработке HTTP ответа

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

unisender_go_api-0.3.0.tar.gz (10.0 kB view hashes)

Uploaded Source

Built Distribution

unisender_go_api-0.3.0-py3-none-any.whl (10.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page