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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file unisender_go_api-0.3.0.tar.gz.

File metadata

  • Download URL: unisender_go_api-0.3.0.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for unisender_go_api-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a0e9d06318b83d1fc3ed1c0dce9d44e6e851d70f9d48f36a7fdcddcf19f80862
MD5 577a1e1e3101bb64b079f0c8f674f4da
BLAKE2b-256 cde612a95e704709c49b763584803d28447292b86259a0c13e99471643a3b80f

See more details on using hashes here.

File details

Details for the file unisender_go_api-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for unisender_go_api-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 92c8e1df9ce37f7c134af536c8bd32e688790cc90c7293d2595340dd1b3a95d1
MD5 f38cbc3ad47013be2bcb4683ab8c937e
BLAKE2b-256 3e8f45b3176759a8fa87b222cb5c3c3b1a3504edc1c50ca1ab915b0abdd089c7

See more details on using hashes here.

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