Хорошо это или плохо, чтобы предоставлять услуги на каждый угловой компонент 4?

На самом деле, у меня есть два вопроса об угловой практике 4.

  1. У меня есть служба по имени RemoteService, который отвечает за звонки XHR. Я хочу поймать экземпляр компонента, который использует этот сервис, в RemoteService, Так что, я думаю, лучше предоставлять эту услугу на уровне компонентов. Потому что я не хочу, чтобы все методы службы принимали экземпляр компонента по параметру. Но хорошо это или плохо предоставлять услугу для каждого компонента? Кстати: RemoteService будет использоваться в сотнях компонентов.
  2. Я пытаюсь следовать стилю руководства по угловым. Где я должен разместить RemoteService?. Общий функциональный модуль или основной функциональный модуль? Это похоже на цель ExceptionService а также LoggerService, Но это не одиночный сервис, как я объяснил выше. Это может зависеть от ответа на вопрос 1.

1 ответ

Решение

Таким образом, чтобы ответить на оба ваших вопроса - RemoteService это определенно хорошая идея Я обычно называю мой ApiService,

Это хорошая идея по нескольким причинам -

  • Все http-вызовы из одного файла позволяют использовать одну конечную точку для ваших внешних запросов. Это более организованно, чем звонки из отдельных сервисов уровня компонента
  • Вы имеете больше контроля над звонками. Это означает, что если вам нужно было поместить некоторую логику между вызовом вашего компонента и фактическим вызовом http (пример - проверка аутентификации) - вы не хотите бегать вокруг своего приложения, меняя его везде - вместо этого у вас есть локальная функция, которая переносит HTTP-запрос, и обеспечивает дополнительную логику.

С точки зрения того, где его поместить - руководство по стилю Джона Папы предлагает поместить этот файл в shared папка: https://johnpapa.net/angular-2-styles/

Другие вопросы по тегам