Я читал учебник по Angular и заметил использование Веб-API в памяти . Все круто, кроме кода в методе PUT heros , мне неудобно.
Вот оно:
private heroesUrl = 'api/heroes';
...
/** PUT: update the hero on the server */
updateHero (hero: Hero): Observable<any> {
return this.http.put(this.heroesUrl, hero, httpOptions).pipe(
tap(_ => this.log(`updated hero id=${hero.id}`)),
catchError(this.handleError<any>('updateHero'))
);
}
Следует отметить, что запрос PUT выполняется на this.heroesUrl
, а не this.heroesUrl/hero.id
. Из моего понимания при реализации CRUD через http, PUT должен быть сделан на URL ресурса.
Правильно ли мое понимание PUT?
В приведенном выше коде это работает, потому что id
для героя для обновления - hero.id
, который является частью hero
объекта, отправленного через PUT
Для этой простой модели героя базовый API генерируется автоматически с помощью пакета Web-API *1024* в памяти для данного руководства.
Если так, In-memory Web API
генерирует правильную семантику PUT?