Felhasználói eszközök

Eszközök a webhelyen


oktatas:web:angular:angular_httpclient

< Angular

Angular HttpClient

Összehasonlítás

 Angular                ES6          JavaScript
    |                    |
    v                    v
HttpClient            fetch()      XMLHttpRequest (XHR)
    |                    |
    v                    v         
Observable            Promise

Modul regisztrálása

Egy új importálásra is szükség van:

  • provideHttpClient
src/app/app.config.ts
import { provideHttpClient } from '@angular/common/http';
 
//...
export const appConfig: ApplicationConfig = {
  providers: [
    provideRouter(routes),
    provideHttpClient()
  ]
};

Szolgáltatás létrehozása

ng generate service shared/api

Szolgáltatás megírása

A konstruktorba paraméterként vegyük fel a http objektumot:

src/app/shared/api.service.ts
  constructor(private http: HttpClient) { }
src/app/shared/api.service.ts
//...
 
  host = 'http://localhost:8000/api/';
 
//...
 
  getEmployees() {    
    let endpoint = 'employees';
    let url = this.host + endpoint;
 
    return this.http.get<any>(url);
  }

Hibakezelés

//...
  errorMessage: string = '';
//...  
    this.api.addEmployee(emp).subscribe({
      next: (data) => {
        console.log(data);
      },
      error: (error) => {
 
        if (error.error && error.error.message) {
          // Ha a szerver egy JSON választ küldött 'message' kulccsal
          this.errorMessage = error.error.message;
        } else if (error.message) {
          // Ha van egy egyszerű üzenet az error objektumban
          this.errorMessage = error.message;
        } else {
          // Ha egyik sem, akkor egy általános hibaüzenetet jelenítünk meg
          this.errorMessage = 'Váratlan hiba történt a kérés során.';
        }
      }        
 
    });

A HTML oldalon megjelenítés:

@if(errorMessage) {
  <div class="error-message">
    {{ errorMessage }}
  </div>
}
oktatas/web/angular/angular_httpclient.txt · Utolsó módosítás: 2025/04/25 17:44 szerkesztette: admin