web-dev-qa-db-ja.com

Angular本文付きのHttpClient Getメソッド

私は既存のAPIを改善しています。要件は、複数の検索条件を受け入れ、それらの条件に基づいてクエリを実行できる単一のgetメソッドを提供することです。

Spring MVCを使用しています。 getメソッドシグネチャ:

@GetMapping("/subscribers")
public ResponseEntity<List<SubscriberDTO>> getAllSubscribers(Pageable pageable, @RequestBody List<SearchCriteria> lstSearchCriteria)

実装はPostmanでテストされた期待どおりに機能しています

Angularフロントエンドの実装に行きましたが、HttpClient Getメソッドを介して本文を送信する方法が見つかりません...

ちょっと行き詰まっています。ヘッダーで検索条件を送信する必要がありますか?それとももっと良い方法がありますか?

14
Bruno Miguel

アミールの回答をより一般的なものにするために、私は次のようにして、渡された項目のパラメーターを作成しました。

私の汎用データサービスに、このバリアントを追加しました。

// Get data for passed parameters or item containing filters
public getByItem<T>(apiMethod: string, item?: T, apiParms?: HttpParams): Observable<T> {
    if (!apiParms) apiParms = new HttpParams();
    if (item) {
        const keys = Object.keys(item) as Array<keyof T>;
        for (let key of keys) {
            apiParms = apiParms.append(key.toString(), item[key].toString());
        }
    }
    // Call generic method of data service
    return this.get<T>(apiMethod, apiParms); // => return this.http.get<T>(environment.apiUrl + apiMethod, { headers: this.defaultHeaders
0