Клиент для взаимодействия со СМЭВ3 посредством Адаптера
Project description
Клиент для взаимодействия со СМЭВ3 посредством Адаптера
Подключение
settings:
INSTALLED_APPS = [
'adapter_client'
]
services:
from adapter_client.adapters.smev.adapter import adapter
from adapter_client.adapters.smev.services.base import AbstractService
from adapter_client.core.domain.model import Message
class ROGDINFService(AbstractService):
"""
Сервис обрабатывающий сообщения со сведениями о рождении.
"""
message_type = 'urn://x-artefacts-zags-rogdinf/root/112-51/4.0.1'
def process_message(self, message: Message):
# сообщение на которое получен ответ
reply_to = message.reply.to
...
class ApplicationRequestService(AbstractService):
"""
Сервис обрабатывающий запросы на зачисление (в качестве поставщика).
"""
message_type = (
'http://epgu.gosuslugi.ru/concentrator/kindergarten/3.2.1'
)
def process_message(self, message: Message):
# обрабатываем сообщение-запрос
...
# отправляем ответ на запрос
adapter.send(
Message(
# необходимо указать что сообщение является ответом
reply_to=message,
# остальные поля сообщения
...
)
)
apps:
from django.apps.config import AppConfig as AppConfigBase
class AppConfig(AppConfigBase):
name = __package__
def ready(self):
self._init_adapter_client()
self._register_services()
def _init_adapter_client(self):
from adapter_client.config import ProductConfig, set_config
from tasks import BaseTask
set_config(ProductConfig(async_task_base=BaseTask))
def _register_services(self):
from adapter_client.adapters.smev.adapter import adapter
from .services import ApplicationRequestService, ROGDINFService
adapter.register_service(ApplicationRequestService(), ROGDINFService())
Запуск тестов
$ tox
API
Передача сообщения
from adapter_client.adapters.smev.adapter import adapter
from adapter_client.core.domain.model import Message
message = Message(
message_type='Foo',
body='<foo>bar</foo>',
attachments=['http://domain.com/attach1', 'http://domain.com/attach2'],
test=True
)
adapter.send(message)
Дальнейшая обработка сообщений производится Celery в фоновом режиме.
Получение ответа на сообщение
Ответы на отправленные сообщения собираются периодической задачей и передаются зарегистрированным сервисам.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
adapter_client-3.0.0.tar.gz
(34.3 kB
view details)
Built Distribution
File details
Details for the file adapter_client-3.0.0.tar.gz
.
File metadata
- Download URL: adapter_client-3.0.0.tar.gz
- Upload date:
- Size: 34.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.11.1 readme-renderer/43.0 requests/2.32.3 requests-toolbelt/1.0.0 urllib3/2.2.1 tqdm/4.66.4 importlib-metadata/7.1.0 keyring/25.2.1 rfc3986/2.0.0 colorama/0.4.6 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5f2fc24c4808de6ae9337ce1eac211e214d56ad1a1b467626fd502fc320b4e9 |
|
MD5 | 5c61da9881f87bb8265fab764e8abe5b |
|
BLAKE2b-256 | a2c3b8001b040abe29331d3843469eccbcdf8ef3f94413f85f4c9ecfcecc5f80 |
File details
Details for the file adapter_client-3.0.0-py3-none-any.whl
.
File metadata
- Download URL: adapter_client-3.0.0-py3-none-any.whl
- Upload date:
- Size: 45.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.11.1 readme-renderer/43.0 requests/2.32.3 requests-toolbelt/1.0.0 urllib3/2.2.1 tqdm/4.66.4 importlib-metadata/7.1.0 keyring/25.2.1 rfc3986/2.0.0 colorama/0.4.6 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48304aaf25c5888a82d1bb5d5b10a64461dff6fede7215d305e1e8c060f7fdbc |
|
MD5 | cd833131635dcc036480b2e9877f9853 |
|
BLAKE2b-256 | 3b53c6d962439ce5df448f18f1bdf475d2f152707da11371cd84c42dbdbd7487 |