質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Q&A

解決済

1回答

469閲覧

APIから取得したデータを加工して返却するサービスの作り方

退会済みユーザー

退会済みユーザー

総合スコア0

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

0グッド

0クリップ

投稿2020/02/19 03:34

編集2020/02/19 04:54

AngularでAPIから取得したデータを加工して返却するサービスの作り方を知りたいです。

チュートリアルではAPIの結果をコンポーネントに返却して表示するというのはありますが、サービスで加工したデータを返却する方法がなくどう作ればよいかわかりません。
pipeやmap、nextなどを使ってやれば良さそうなのはわかるのですが、そういったサンプルが乗っているサイトや本はありますか?

追記

例えばチュートリアルのtapの中でHero型のデータを元に違う型にして返却したいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2020/02/19 10:24

どこに返却するのでしょうか?
guest

回答1

0

ベストアンサー

AngularチュートリアルのgetHeroとgetHeroes関数を基にすると、

typescript

1interface MoreHero { 2 id: number; 3 name: string; 4 age: number 5} 6 7getHero(id: number): Observable<MoreHero> { 8 const url = `${this.heroesUrl}/${id}`; 9 return this.http.get<Hero>(url).pipe( 10 catchError(this.handleError<Hero>(`getHero id=${id}`)), 11 map((hero) => { 12 return { 13 ...hero, 14 age: 17 15 } 16 }) 17 ); 18} 19 20getHeroes (): Observable<MoreHero[]> { 21 return this.http.get<Hero[]>(this.heroesUrl) 22 .pipe( 23 catchError(this.handleError<Hero[]>('getHeroes', [])), 24 map((hero) => { 25 return hero.map(o => ({...o, age: 17})) 26 }) 27 ); 28}

という感じです。
rxjs/operatorsのmap関数を使います。

投稿2020/02/28 02:01

kaito3desuyo

総合スコア143

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問