Communicating Using HTTP
Setup for server communication
Before you can use HttpClient
, you need to import and the Angular HttpClientModule
to the providers array in in app.config.ts
:
import { HttpClientModule } from '@angular/common/http';
export const appConfig: ApplicationConfig = {
providers: [
..., // other providers
HttpClientModule()
]
};
You can then inject the HttpClient
service into your component or service. Note that the
HttpClient
returns an Observable
object so you also need to import Observable
from rxjs
.
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
export class HttpTestingService {
constructor(private http: HttpClient) { }
}
Requesting data from a server
Use the HttpClient.get()
method to fetch data from a server. The HttpClient
makes a request to
the server and returns an Observable
object. The get()
method takes two arguments; the
endpoint URL from which to fetch, and an options object that is used to configure the request.
The return type varies based on the observe
and responseType
values that you pass to the call.
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
export class HttpTestingService {
private baseURL = 'http://localhost:3232'
private http = inject(HttpClient);
getJsonResponse(): Observable<any> {
return this.http.get<JSON>(`${this.baseURL}/api/json-response`);
}
}
Subscribing to the Observable
Once you have the Observable
object, you can then subscribe to the the data.
export class HttpTestingComponent {
private httpTestingService = inject(HttpTestingService);
getJsonResponse() {
this.httpTestingService.getJsonResponse().subscribe((data) => {
console.log(data);
});
}
}