Angular Tour of Heroes HttpClient CRUD методы - PullRequest
0 голосов
/ 26 мая 2018

В настоящее время я учусь на английском с уроком «Тур героев».В главе, посвященной HTTP, я не понимаю, как соответствующие герои вызываются с сервера, поскольку оказывается, что на симулированный сервер передается только URL-адрес для любого из методов HttpClient.get (или других CRUD) ...

private heroesUrl = 'api/heroes'

и соответствующий метод get для всех героев (~ массив):

getHeroes (): Observable<Hero[]> {
  return this.http.get<Hero[]>(this.heroesUrl)
}

, если возвращается только один герой:

/** GET hero by id. Will 404 if id not found */

    getHero(id: number): Observable<Hero> {
      const url = `${this.heroesUrl}/${id}`;
      return this.http.get<Hero>(url).pipe(
        tap(_ => this.log(`fetched hero id=${id}`)),
        catchError(this.handleError<Hero>(`getHero id=${id}`))
      );

, что будет возвращенос этого URL?Я имею в виду, что это просто URL-адрес. Как API-интерфейс базы данных реагирует в фоновом режиме в ответ на URL-адрес (или переданный идентификатор)?

То же самое относится и к другим методам записи:

addHero (hero: Hero): Observable<Hero> {
  return this.http.post<Hero>(this.heroesUrl, hero, httpOptions).pipe(..)
}

у него есть параметр url, но как передать героя на сервер?и где создается идентификатор героя?

1 Ответ

0 голосов
/ 26 мая 2018

что будет возвращено с этого URL?

Когда вы выполняете HttpClient.get, результат всегда является наблюдаемым.Таким образом, вы получите наблюдаемое.

Я имею в виду, что это просто URL-адрес, как API-интерфейс базы данных реагирует в фоновом режиме в ответ на URL-адрес (или переданный идентификатор)?

Как выв app.module.ts:

 // The HttpClientInMemoryWebApiModule module intercepts HTTP requests
    // and returns simulated server responses.
    // Remove it when a real server is ready to receive requests.
    HttpClientInMemoryWebApiModule.forRoot(
      InMemoryDataService, { dataEncapsulation: false }
    )

видно, что у него есть параметр url, но как фактический герой передается на сервер?и где создается идентификатор героя?

Более подробную информацию о том, как это работает, можно найти здесь: https://github.com/angular/in-memory-web-api

...