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

If you're not sure about the file name format, learn more about wheel file names.

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 Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page