Я использую NestJS для разработки микросервиса. Я использую внедрение зависимостей и понимаю, как вводить значения / классы и использовать фабричные методы.
Мой вопрос заключается в том, как далеко нужно пройти внедрение зависимостей в NestJS? Каковы лучшие практики?
Например, я разрабатываю систему обратной связи. Это получает сообщение в виде строки. Затем он выполняет анализ настроений и распознавание ключевых фраз. Анализ абстрагирован, поэтому я могу использовать Google / AWS и т. Д. Это показано ниже:
{
provide: NaturalLanguageAnalysisProvider,
useClass: AmazonNaturalLanguageAnalysisProvider
}
AmazonNaturalLanguageAnalysisProvider требует настройки. Например, область экземпляра Comprehend.
Используя внедрение значения NestJS, я мог бы создать поставщика значений с токеном AMAZON_REGION и вставить его в конструктор службы.
{
provide: 'AMAZON_REGION',
useValue: 'eu-west-2',
}
В качестве альтернативы я мог бы использовать метод useFactory для импорта и возврата сконфигурированного объекта AWS.
{
provide: 'COMPREHEND',
useFactory: args => {
return new AWS.Comprehend(/*configure*/);
}
}
Полагаю, они также могут быть предоставлены через переменные среды.
Если бы я хотел создать настраиваемых поставщиков, каков наилучший способ передачи данных конфигурации.
Значения поставщиков для каждой переменной конфигурации - я подозреваю, что это может привести к чрезмерному определению поставщиков вызывающего модуля
Заводские методы
Что-то еще
Буду признателен за любые советы по этому поводу!