私は既存のAPIを改善しています。要件は、複数の検索条件を受け入れ、それらの条件に基づいてクエリを実行できる単一のgetメソッドを提供することです。
Spring MVCを使用しています。 getメソッドシグネチャ:
@GetMapping("/subscribers")
public ResponseEntity<List<SubscriberDTO>> getAllSubscribers(Pageable pageable, @RequestBody List<SearchCriteria> lstSearchCriteria)
実装はPostmanでテストされた期待どおりに機能しています
Angularフロントエンドの実装に行きましたが、HttpClient Getメソッドを介して本文を送信する方法が見つかりません...
ちょっと行き詰まっています。ヘッダーで検索条件を送信する必要がありますか?それとももっと良い方法がありますか?
アミールの回答をより一般的なものにするために、私は次のようにして、渡された項目のパラメーターを作成しました。
私の汎用データサービスに、このバリアントを追加しました。
// 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