Я занят программированием бэкэнда микросервиса в Python с использованием Nameko. В поисках хорошего пакета внедрения зависимости я наткнулся на Injector. Мне очень понравилось, и я хотел использовать его вместе с Nameko. Затем я заметил небольшую проблему: Nameko создает экземпляры рабочих и не работает с пакетами внедрения зависимостей из коробки. После попытки заставить его работать, используя документацию, я наткнулся на пакет nameko-инжектор . Мне понравилась концепция, и я попытался реализовать ее, но я получаю сообщение об ошибке:
Параметр 'bindings' не заполнен
Использование примера кода из репозитория git (показано ниже) проблема возникла при инициализации класса NamekoInjector.
Рабочий класс микросервиса:
from nameko.rpc import rpc
from services.order_service import OrderService
from nameko_injector.core import NamekoInjector
INJECTOR = NamekoInjector()
@INJECTOR.decorate_service
class OrderWorker:
# Mandatory field for service discovery
name = "order_worker"
def __init__(self, service: OrderService):
self.service = service
@rpc
def get_orders(self):
return self.service.orders()
Класс OrderService:
from models.order.order import Order
class OrderService(object):
def __init__(self):
self.orders = [Order(1), Order(2)]
def get_users(self):
return self.orders
Класс Order:
class Order:
def __init__(self, orderid):
self.orderid = orderid
def __str__(self):
return str(self.orderid)
Просматривая класс NamekoInjector, я не мог выяснить, что именно делает привязка и когда она используется. Во-первых, мне это даже не нужно, но когда я удаляю поля привязки и другие использования в классе NamekoInjector, он все равно не будет работать. Кто-нибудь может мне помочь? Спасибо!