Builder AMQP connection to 1C:ESB application
Библиотека для интеграции с 1C:ESB (1С:Шина), помогающая получать метаданные каналов, их актуальные состояния, направления. Формировать AMQP-подключение к приложениям, опубликованным в 1С:Шине.
Установка
pip install esb1c-app
Возможности
-
Applicationавтоматически получаетid_tokenпо протоколу OAuth 2.0 (client_credentials) и переиспользует его во всех запросах. -
Загрузка метаданных каналов (
/sys/esb/metadata/channels) с разбором описаний и направлений доступа. -
Получение актуальных назначений каналов (
/sys/esb/runtime/channels) и определение активных каналов отправки/получения. -
Формирование AMQP URL вида
amqp://<token>:<token>@<host>:<port>/applications/<application>на основе данных ESB.
Быстрый старт
see example.py
import os
from esb1c import Application
application = Application(
url=os.environ["APPLICATION_URL"],
client_id=os.environ["CLIENT_ID"],
client_secret=os.environ["CLIENT_SECRET"],
)
print(application.url.to_dict())
// json: application.url
{'application_name': 'test',
'base_url': 'http://srv.dm.local:9090',
'host': 'src.dm.local',
'port': 9090,
'url': 'http://srv.dm.local:9090/applications/test',
'vhost': '/applications/test'}
print("Application sender:")
print(application.sender.to_dict())
// json: application sender:
{
'access': 'WRITE_ONLY',
'channel': 'send1',
'channel_description': 'Источник №1',
'destination': 'PUBLIC.MDE5YTU1YTZmM...........d3cec70',
'process': 'my: :test: :Основной: :Дополнительный',
'process_description': 'Процесс'
}
print("Application receiver:")
print(application.receiver.to_dict())
// jsom: application receiver:
{
'access': 'READ_ONLY',
'channel': 'rec1',
'channel_description': 'Получатель №1',
'destination': 'PUBLIC.MDE5YTU1YTZmM............d3cec70',
'process': 'my: :test: :Основной: :Дополнительный',
'process_description': 'Процесс'
}
# token авторизации
print(application.id_token)
# каналы отправитель и получатель
print(application.sender)
print(application.receiver)
# строка соединения по протоколу amqp с токенами
print(application.amqp_url)
# Исходящие каналы
for channel in application.channels.senders:
print(
channel.channel,
channel.process,
channel.destination,
channel.channel_description,
)
# Входящие каналы
for channel in application.channels.receivers:
print(
channel.channel,
channel.process,
channel.destination,
channel.process_description,
)
Переменные окружения
APPLICATION_URL— полный URL приложения в 1C:ESB видаhttp(s)://host(:port)/applications/<имя>.CLIENT_IDиCLIENT_SECRET— учетные данные пользователя (информационной базы).
Если переменные окружения заданы - библиотека готова к использованию.
Тестирование
Установите зависимости для разработки:
pip install .[dev]
Запустите тесты:
pytest
По умолчанию запросы к API 1C:ESB подменяются моками. Чтобы прогнать тесты на реальном окружении, задайте переменные APPLICATION_URL, CLIENT_ID, CLIENT_SECRET - это дополнит тестовые наборы (или удалите/отключите фикстуру mock_requests).
Требования
- Python 3.9+
requests
Лицензия
Проект распространяется по лицензии MIT.
Metadata
Release files for esb1c-app 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| esb1c_app-0.1.6.tar.gz | 5.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| esb1c_app-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.5 kB
Release files / esb1c_app-0.1.6.tar.gz
| Download URL | esb1c_app-0.1.6.tar.gz |
|---|---|
| Size | 5.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d78b3de0ca360480bbcb4e944d5cfc2912ff1c9b572f879957ddcc4537aaf3c1
|
|
BLAKE2b-256 checksum How to use checksums |
70e8716bda6a51071220c17c0d81e80af2080b9e608081a1dab42d0a7c477f96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / esb1c_app-0.1.6-py3-none-any.whl
| Download URL | esb1c_app-0.1.6-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd470885c3835566c0c4b15872bb716d3a7ae5cc79938359d41d46c40149daa2
|
|
BLAKE2b-256 checksum How to use checksums |
d662816b5741eb0fd16e76926515998ac0466f62cdc5e43b78469a8c0abe441b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|