Builder AMQP connection to 1C:ESB application
Project description
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.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file esb1c_app-0.1.5.tar.gz.
File metadata
- Download URL: esb1c_app-0.1.5.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af5812f2a24c9679cdd0ea0a4316d25bd3f2f890307567bd9d9876733fb6da33
|
|
| MD5 |
e6649b65d13d5862cd68133262d258d6
|
|
| BLAKE2b-256 |
8173430d963a3a6d0c30da5c8f1d0786b65865c3edd82289fba39342b07f4f92
|
File details
Details for the file esb1c_app-0.1.5-py3-none-any.whl.
File metadata
- Download URL: esb1c_app-0.1.5-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
614341610b0943a0e3dffa167bf5161b0072455334b2a3727c17e2503696d446
|
|
| MD5 |
1147bb95d98e08bf4e919be89febfe02
|
|
| BLAKE2b-256 |
5cddf2fd01cc1b3de399e791a95a334fbf5bde42e415fa239fa0b423881e63b8
|