Budowanie URL z opcjonalnymi query params

0

Mam serwis, który wykonuje zapytania do REST API, to API przyjmuje 3 opcjonalne query params

getMessagesByInput(id: string, text: string): Observable<any> {

        const params = new HttpParams()
            .append('id', id)
            .append('text', text);

        return this.http.get<Array<any>>(this.BASE_URL, {params});
    }

Mam taką metodę, jeżeli id albo text jest pusty to chciałbym, żeby w ogóle go nie wstawiało do url czyli jeżeli

id=
text=asd

wtedy

www.costam.pl?text=asd

Niestety obecnie jest tak

www.costam.pl?id=&text=asd

Testowałem jakiś tam rest-url-builder ale nie działa mi to z nowym angularem, można dodać ify i wtedy ok, ale jakość kodu jest słaba i co jeżeli dojdzie więcej parametrów?

Proszę o porady.

0

Mógłbyś przyjąć obiekt, zrobić na nim Object.keys(...).forEach i dla każdego dostępnego klucza wywołać append z kluczem i wartością.

1 użytkowników online, w tym zalogowanych: 0, gości: 1