Originally published at https://jasonwatmore.com
This sends an HTTP GET request to the npm api for a list of packages that belong to the @angular
scope, then assigns the total
returned in the response to the local property totalAngularPackages
. The response type is set to <any>
so it handle any properties returned in the response.
this.http.get<any>('https://api.npms.io/v2/search?q=scope:angular').subscribe(data => { this.totalAngularPackages = data.total; })
This sends the same request as the above but sets the response type to a custom SearchResults interface that defines the expected response properties.
interface SearchResults { total: number; results: Array<object>; } this.http.get<SearchResults>('https://api.npms.io/v2/search?q=scope:angular').subscribe(data => { this.totalAngularPackages = data.total; })
This sends a request to an invalid url on the npm api and logs the error to the console from an error handler function that is passed as the second parameter to the subscribe()
method of the Observable returned from the call to http.get()
.
this.http.get('https://api.npms.io/v2/invalid-url').subscribe( data => this.totalAngularPackages = data.total, error => console.error('There was an error!', error) )
Before making HTTP requests from your Angular app you need to do a couple of things.
1. Add the HttpClientModule
to the imports
array of your AppModule
like below on lines 3
and 10
.
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { HttpClientModule } from '@angular/common/http';import { AppComponent } from ‘./app.component’;
@NgModule({
imports: [
BrowserModule,
HttpClientModule
],
declarations: [
AppComponent
],
bootstrap: [AppComponent]
})
export class AppModule { }
2. Import the HttpClient
into your component and add it to the constructor()
params like below on lines 2
and 8
.
import { Component, OnInit } from ‘@angular/core’;
import { HttpClient } from ‘@angular/common/http’;@Component({ selector: ‘app’, templateUrl: ‘app.component.html’ })
export class AppComponent implements OnInit {
totalAngularPackages;constructor(private http: HttpClient) { }
ngOnInit() {
// Simple GET request with response type <any>
this.http.get<any>(‘https://api.npms.io/v2/search?q=scope:angular’).subscribe(data => {
this.totalAngularPackages = data.total;
})
}
}
Thanks for reading ❤
If you liked this post, share it with all of your programming buddies!
Follow us on Facebook | Twitter
☞ Best 50 Angular Interview Questions for Frontend Developers in 2019
☞ How to build a CRUD Web App with Angular 8.0
☞ React vs Angular: An In-depth Comparison
☞ React vs Angular vs Vue.js by Example
#angular #api #web-development