Using Angular HttpClient

From PeformIQ Upgrade
Revision as of 13:31, 24 October 2019 by PeterHarding (talk | contribs)
Jump to navigation Jump to search

Links

Examples

Some examples.

GET

In the .ts

import { HttpClient } from '@angular/common/http';
  getUsers() {
    this.httpClient.get(this.url').subscribe((res: any[]) => {
        console.log(res);
        this.users = res;
    },
    error => { this.errorMessage = error as any; },
    () => {
      // Complete - update a datatable
      this.changeDetectorRef.detectChanges();
      const table: any = $('#UsersTable');
      this.dataTable = table.DataTable(this.dtOptions);
    });

  } // getUsers

Get a list of markers - this.markers:


  getMarkers() {

    const url = this.baseUrl + '/v1/xxx/xxxx/markers';

    // console.log('[getMarkers]                                  url |' + url + '|');

    this.httpClient.get(url).subscribe((markers: Marker[]) => {

        // console.log('[getMarkers]                        markers |');
        // console.log(markers);

        this.markers = markers;
    },
    error => { this.errorMessage = error as any; },
    () => {
      // console.log('[getMarkers]            COMPLETED => markers |' + this.markers + '|');
      // Complete
    });

  } // getMarkers

POST

  addUser(user: User) {

    console.log('[addUser]                                    GUID |', this.user.Id);

    this.httpClient.post(this.baseUrl + '/v1/xxx/users',
    {
      email: user.email,
      lastName: user.lastName,
      firstName: user.firstName
    })
    .subscribe(
      data  => {
        console.log('[addUser]                 POST Request is successful |' + data + '|');
      },
      error  => {
        console.log('[addUser]                                      Error |' + error + '|');
      });

  } // addUser

PATCH

  update(xxx: Xxx) {

    this.httpClient.patch(this.baseUrl + '/v1/xxx/xxxx-xxxx/' + this.id,
    {
      Id : xxx.Id,
      Status: xxx.Status,
      XxxId: xxx.XxxId,
      NoXxx: xxx.NoXxx
    })
    .subscribe(
      data  => {
        console.log('[update]              PATCH Request is successful |' + data + '|');
        return data;
      },
      error  => {
        console.log('[update]                                    Error |' + error + '|');
        return  error;
      });

  } // update

API Usage Examples


  public createUser(user: User) {
    return this.httpClient.post(`${this.apiURL}/users/`, user);
  }

  public updateUser(user: User) {
    return this.httpClient.put(`${this.apiURL}/users/${user.Id}`, user);
  }

  public deleteUser(userid: string) {
    return this.httpClient.delete(`${this.apiURL}/users/${userid}`);
  }

  public getUserById(id: string) {
    return this.httpClient.get(`${this.apiURL}/users/${id}`);
  }

Notes

To add multiples params or headers you can do the following:

constructor(private httpClient: HttpClient) {}

const url = `${environment.BaseUrl}/api/route`;

let httpHeaders = new HttpHeaders().set('one', one); 
httpHeaders = httpHeaders .append('two', two); 
httpHeaders = httpHeaders .append('three', three);

let urlParams = new HttpParams().set('one', one);
urlParams = urlParams .append('two', two);
urlParams = urlParams .append('param3', value3);

return this.httpClient.get<any[]>(url, { headers: httpHeaders, params: urlParams })