Angular 7 с json-сервером - как получить идентификатор, возвращенный в ответном сообщении? - PullRequest
1 голос
/ 03 апреля 2019

Использование следующих параметров http:

const httpOptions: any = {
  headers: new HttpHeaders({
    'Content-Type': 'application/json'
  }),
  observe: 'response'
};

отправляю сообщение http конечной точке json-сервера следующим образом:

return this.http.post(`${this.baseUrl}/events`, myEvent, httpOptions);

Код, который подписывается на пост, выглядит следующим образом:

this.api.saveEvent(this.event).subscribe(data => {
  // Need to pick up the id from data (HttpResponse) here
});

This is the returned HttpResponse object

Я вижу, что data, возвращаемое в подписке, имеет тип HttpResponse - как правильно разыграть data, чтобы я мог добраться до свойства body ответа и взять id свойство, возвращаемое json-сервером?

Обновление : согласно комментариям ниже, я в итоге получил метод saveNewEvent для возврата Observable<HttpRespponse<Event>>, однако это работает, только если я передаю параметры http как встроенный анонимный объект. Настройка параметров в const и ссылка на этот const в методе post не работает, и я не понял, почему. Есть идеи?

1 Ответ

0 голосов
/ 03 апреля 2019

когда вы указываете тип данных, которые вы можете получить, просто убедитесь, что ваш API возвращает их правильно.

return this.http.post<{id: Number}>(`${this.baseUrl}/events`, myEvent, httpOptions);

this.api.saveEvent(this.event).subscribe(data => {
  console.log(data.id);
});
...