() translation by (you can also view the original English article)
Pada tutorial sebelumnya, kamu melihat bagaimana menerapkan routing pada aplikasi web Angular menggunakan routing Angular.
Pada tutorial sebelumnya, kamu melihat bagaimana menerapkan routing pada aplikasi web Angular menggunakan Angular HttpClient
.
Angular HttpClient
Kamu menggunakan XMLHttpRequest(XHR)
objek untuk membuat server-side API panggilan dari browser. Objek XHR
memungkinkan untuk memperbarui sebagian halaman web tanpa memuat ulang keseluruhan halaman. kamu dapat mengirim dan menerima data dari server setelah halaman web dimuat.
Angular HttpClient
menyediakan pembungkus untuk objek XHR
sehingga memudahkan untuk membuat panggilan API dari aplikasi Angular
Dari dokumentasi resmi:
Dengan HttpClient, @angular / common / http menyediakan API sederhana untuk fungsi HTTP untuk digunakan dengan aplikasi Angular, Membangun di atas antarmuka XMLHttpRequest yang terpapar browser. Manfaat tambahan dariHttpClient
meliputi dukungan uji coba, pengetikan permintaan dan respons yang kuat, dukungan pencegat respon dan tanggapan, dan penanganan kesalahan yang lebih baik melalui apis berdasarkan Observables.
Mulai
Kamu akan mulai dengan mengkloning kode sumber dari bagian pertama rangkaian tutorial.
1 |
git clone https://github.com/royagasthyan/AngularComponent.git |
Setelah kamu memiliki kode sumber, navigasikan ke direktori proyek dan instal dependensi yang diperlukan.
1 |
cd AngularComponent
|
2 |
npm install
|
Setelah dependensi terinstal, jalankan aplikasi dengan mengetikkan perintah berikut:
1 |
ng serve |
Kamu harus memiliki aplikasi yang berjalan di http: // localhost: 4200 /.
Untuk menggunakan modul HttpClient
dalam aplikasi Angularmu, kamu harus mengimpornya terlebih dahulu di file app.module.ts
milikmu.
Dari direktori proyek, navigasikan kesrc/app/app.module.ts
. Di file app.module.ts
, import HttpClientModule
.
1 |
import {HttpClientModule} from '@angular/common/http'; |
Sertakan HttpClientModule
di bawah bagian impor.
1 |
imports: [ |
2 |
BrowserModule, |
3 |
FormsModule, |
4 |
HttpClientModule
|
5 |
]
|
Berikut adalah bagaimana file app.module.ts
terlihat:
1 |
import { BrowserModule } from '@angular/platform-browser'; |
2 |
import { NgModule } from '@angular/core'; |
3 |
import { AppComponent } from './app.component'; |
4 |
import { CalcComponent } from './calc/calc.component' |
5 |
import { FormsModule } from '@angular/forms'; |
6 |
import { HttpClientModule } from '@angular/common/http'; |
7 |
|
8 |
@NgModule({ |
9 |
declarations: [ |
10 |
AppComponent, |
11 |
CalcComponent
|
12 |
],
|
13 |
imports: [ |
14 |
BrowserModule, |
15 |
FormsModule, |
16 |
HttpClientModule
|
17 |
],
|
18 |
providers: [], |
19 |
bootstrap: [AppComponent] |
20 |
})
|
21 |
export class AppModule { } |
Sekarang kamu akan dapat menggunakan HttpClientModule
di aplikasi Sudut dengan mengimpornya dalam komponen Angular tertentu.
Membuat komponen Angular
Mari kita mulai dengan membuat komponen Angular. Buat folder yang disebut get-data
di dalam folder src / app
. Buat file bernama get-data.component.ts
dan tambahkan kode berikut ini:
1 |
import { Component } from '@angular/core'; |
2 |
|
3 |
@Component({ |
4 |
selector: 'get-data', |
5 |
templateUrl: 'get-data.component.html', |
6 |
styleUrls: ['get-data.component.css'] |
7 |
})
|
8 |
export class GetDataComponent { |
9 |
|
10 |
constructor(){ |
11 |
|
12 |
}
|
13 |
|
14 |
}
|
Buat file bernama get-data.component.html
yang akan berfungsi sebagai file template untuk komponen get-data
. Tambahkan kode berikut untuk file get-data.component.html
:
1 |
<h3>
|
2 |
Get Data Component |
3 |
</h3>
|
Impor GetDataComponent
di file src / app / app.module.ts.
1 |
import { GetDataComponent } from './get-data/get-data.component'; |
Tambahkan GetDataComponent
ke ngModule
di app.module.ts.
1 |
declarations: [ |
2 |
AppComponent, |
3 |
CalcComponent, |
4 |
GetDataComponent
|
5 |
]
|
Berikut adalah bagaimana file app.module.ts
yang dimodifikasi terlihat:
1 |
import { BrowserModule } from '@angular/platform-browser'; |
2 |
import { NgModule } from '@angular/core'; |
3 |
import { AppComponent } from './app.component'; |
4 |
import { CalcComponent } from './calc/calc.component'; |
5 |
import { GetDataComponent } from './get-data/get-data.component'; |
6 |
import { FormsModule } from '@angular/forms'; |
7 |
import { HttpClientModule } from '@angular/common/http'; |
8 |
|
9 |
@NgModule({ |
10 |
declarations: [ |
11 |
AppComponent, |
12 |
CalcComponent, |
13 |
GetDataComponent
|
14 |
],
|
15 |
imports: [ |
16 |
BrowserModule, |
17 |
FormsModule, |
18 |
HttpClientModule
|
19 |
],
|
20 |
providers: [], |
21 |
bootstrap: [AppComponent] |
22 |
})
|
23 |
export class AppModule { } |
Tambahkan pemilih komponen get-data
ke file app.component.html.
Begini tampilannya:
1 |
<div style="text-align:center"> |
2 |
<get-data></get-data>
|
3 |
</div>
|
4 |
Simpan perubahan di atas dan mulai server. kamu akan dapat melihat komponen get-data
yang ditampilkan saat aplikasi dimuat.



Menggunakan Modul HttpClient Angular
Kamu akan menggunakan modul HttpClient
untuk membuat panggilan API. Mari buat file terpisah untuk membuat layanan Angular untuk membuat panggilan API. Buat file bernama get-data.service.ts file
. Tambahkan kode berikut ke file get-data.service.ts
:
1 |
import { Injectable } from '@angular/core'; |
2 |
|
3 |
@Injectable() |
4 |
export class GetDataService { |
5 |
|
6 |
constructor() { |
7 |
|
8 |
}
|
9 |
|
10 |
}
|
Impor modul HttpClient
ke GetDataService
di atas.
1 |
import { HttpClient } from '@angular/common/http'; |
Inisialisasi HttpClient
di konstruktor GetDataService
.
1 |
constructor(private http: HttpClient) { |
2 |
|
3 |
}
|
Buat metode yang disebut call_api
untuk membuat panggilan API GET di file GetDataService
. Kamu akan menggunakan kata sinonim finder API untuk membuat panggilan API. Beginilah cara metode call_api
terlihat:
1 |
call_api(term) { |
2 |
return this.http.get(this.url + term); |
3 |
}
|
Berikut adalah bagaimana file get-data
.service.ts terlihat:
1 |
import { Injectable } from '@angular/core'; |
2 |
import { HttpClient } from '@angular/common/http'; |
3 |
|
4 |
@Injectable() |
5 |
export class GetDataService { |
6 |
|
7 |
url: string |
8 |
constructor(private http: HttpClient) { |
9 |
this.url = 'https://api.datamuse.com/words?ml=' |
10 |
}
|
11 |
|
12 |
call_api(term) { |
13 |
return this.http.get(this.url + term); |
14 |
}
|
15 |
}
|
Seperti yang terlihat di kelas GetDataService
di atas, metode call_api
mengembalikan sebuah pengamatan yang dapat kamu gunakan dari GetDataComponent
.
Untuk berlangganan dari konstruktor GetDataComponent
, kamu perlu mengimpor GetDataService
di GetDataComponent
.
1 |
import { GetDataService } from './get-data.service'; |
Tentukan GetDataService sebagai penyedia GetDataComponent.
1 |
@Component({ |
2 |
selector: 'get-data', |
3 |
templateUrl: 'get-data.component.html', |
4 |
styleUrls: ['get-data.component.css'], |
5 |
providers:[ GetDataService ] |
6 |
})
|
Mari berlangganan dari metode konstruktor GetDataComponent
.
1 |
constructor(private dataService: GetDataService){ |
2 |
this.dataService.call_api('hello').subscribe(response => { |
3 |
console.log('Response is ', response); |
4 |
})
|
5 |
}
|
Berikut adalah bagaimana file get-data.component.ts
terlihat:
1 |
import { Component } from '@angular/core'; |
2 |
import { GetDataService } from './get-data.service'; |
3 |
|
4 |
@Component({ |
5 |
selector: 'get-data', |
6 |
templateUrl: 'get-data.component.html', |
7 |
styleUrls: ['get-data.component.css'], |
8 |
providers:[ GetDataService ] |
9 |
})
|
10 |
export class GetDataComponent { |
11 |
|
12 |
constructor(private dataService: GetDataService){ |
13 |
this.dataService.call_api('hello').subscribe(response => { |
14 |
console.log('Response is ', response); |
15 |
})
|
16 |
}
|
17 |
|
18 |
}
|
Simpan perubahan di atas dan restart server. Kamu akan bisa melihat hasilnya masuk konsol browser.
Pada kode di atas, Kamu melihat bagaimana membuat permintaan API GET menggunakan HttpClient Angular.
Untuk membuat permintaan POST, Kamu perlu menggunakan metode http.post
.
1 |
this.http.post(url, {key : value}); |
Seperti yang terlihat pada kode di atas, Kamu perlu memberikan URL posting API dan data yang akan diposkan sebagai parameter kedua.
Menangani Kesalahan Saat Membuat Panggilan API
Kapan pun kamu membuat panggilan API, ada kemungkinan yang sama untuk menemukan kesalahan. Untuk menangani kesalahan saat membuat panggilan API, kamu perlu menambahkan penangan kesalahan ke metode subscribe
(berlangganan) bersama dengan penangan respone
(tanggapan).
Berikut adalah bagaimana kode yang dimodifikasi dari GetDataComponent
terlihat:
1 |
constructor(private dataService: GetDataService){ |
2 |
this.dataService.call_api('hello').subscribe(response => { |
3 |
console.log('Response is ', response); |
4 |
}, err => { |
5 |
console.log('Something went wrong ', err); |
6 |
})
|
7 |
}
|
Ubah variabel url
di file get-data.service.ts
untuk membuat URL yang tidak ada yang akan menyebabkan kesalahan saat membuat panggilan API.
1 |
this.url = 'https://ai.datamuse.com/words?ml=' |
Simpan perubahan di atas dan restart server. Periksa konsol browser dan kamu akan memiliki metode penanganan kesalahan yang disebut dan kesalahan masuk.
Objek kesalahan berisi semua rincian tentang kesalahan seperti kode kesalahan, pesan kesalahan, dll. Hal ini memberi wawasan lebih dalam tentang kesalahan yang terjadi pada panggilan API. Berikut adalah bagaimana log browser konsol terlihat:



Seperti yang terlihat di log konsol di atas, semua rincian kesalahan dapat diperoleh dari objek kesalahan.
Membungkusnya
Dalam tutorial ini, Kamu melihat bagaimana memanfaatkan HttpClientModule
sudut untuk membuat panggilan API. Kamu belajar bagaimana mengimpor HttpClientModule
untuk membuat permintaan GET dan POST ke server API. Kamu melihat bagaimana menangani kesalahan saat membuat panggilan API.
Bagaimana pengalaman kamu mencoba belajar bagaimana membuat panggilan API menggunakan Angular HttpClientModule
? Beri tahu kami pendapat kamu di komentar di bawah ini.
Source code(sumber kode) dari tutorial ini tersedia di GitHub.