Как инкапсулировать диспетчер запросов в Angular7 с помощью httpClient? - PullRequest
1 голос
/ 29 мая 2019

Я новичок в Angular, и я использую httpClient следующим образом:

 public getFocusAreaDataWithHttpClient() {

    this.http.get(Api.focusAreaApi).subscribe({
      next(response) {
        console.log("httpClient handle data");
        console.dir(response);
      },
      error(err) {
        console.error("Error: " + err);
      },
      complete() {
        console.log("Completed");
      }
    });
  }

Я хочу инкапсулировать сервис (apiManager.service), чтобы предоставить публичный метод, тогда другой сервис сможет его использоватьчтобы получить данные (необходимо передать apiurl), я ожидаю, что это так:

export class ApiManager {
  constructor(private http: HttpClient) {}
// define request header , content-Type , auth token ,and some common config here
// and there should be 2 method - get and post

}

, и другие службы могут использовать его как:


apiManager.get(apiurl,parameters).subscript...
apiManager.post(apiurl,parameters).subscript...

, но я понятия не имею, какя хотел бы, чтобы кто-нибудь дал мне несколько демонстраций, чтобы показать, как инкапсулировать класс менеджера для обеспечения функции выборки данных.

1 Ответ

0 голосов
/ 29 мая 2019

В Angular этот вид деятельности выполняется через services .

Если вы используете Angular CLI (который вам обязательно следует использовать), просто наберите ng generate service api-manager в терминале и онсоздаст для вас весь шаблон.

...