oktatas:web:angular:angular_httpclient:egyszeruen
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalonElőző változat | |||
oktatas:web:angular:angular_httpclient:egyszeruen [2024/03/03 18:01] – [Backend oldal] admin | oktatas:web:angular:angular_httpclient:egyszeruen [2025/03/02 13:38] (aktuális) – eltávolítva admin | ||
---|---|---|---|
Sor 1: | Sor 1: | ||
- | [[oktatas: | ||
- | |||
- | ====== Angular HttpClient egyszerűen ====== | ||
- | |||
- | * **Szerző: | ||
- | * Copyright (c) 2021, Sallai András | ||
- | * Szerkesztve: | ||
- | * Licenc: [[https:// | ||
- | * Web: https:// | ||
- | |||
- | ===== Bevezetés ===== | ||
- | |||
- | Ebben a leírásban REST API-ról kérdezünk le dolgozókat, | ||
- | A REST API szervert egy NodeJS alapú json-server csomag fogja helyettesíteni. | ||
- | |||
- | HTTP kérésekhez az Angularban a HttpClient objektum használható. | ||
- | A HttpClient Promise helyett Observable alapú objektum. Az Observable | ||
- | is aszinkron működtetést tesz lehetővé. | ||
- | |||
- | < | ||
- | | ||
- | | | | ||
- | v v | ||
- | Observable | ||
- | | | | ||
- | v v | ||
- | HttpClient | ||
- | </ | ||
- | |||
- | ===== Projekt készítése ===== | ||
- | |||
- | Készítsünk egy angular projektet: | ||
- | ng new app01 | ||
- | |||
- | Lépjünk be, majd indítsunk kódszerkesztőt. | ||
- | |||
- | cd app01 | ||
- | code . | ||
- | |||
- | ===== Backend oldal ===== | ||
- | |||
- | Backend-nek a **json-server** fogjuk használni. | ||
- | |||
- | ^ Végpont | ||
- | | / | ||
- | |||
- | Készítsünk egy **database.json** fájlt az alábbi tartalommal: | ||
- | |||
- | <code javascript database.json> | ||
- | { | ||
- | " | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | ] | ||
- | } | ||
- | </ | ||
- | |||
- | A json-server telepítése: | ||
- | npm install --save-dev json-server | ||
- | |||
- | Szerkesszük a package.json fájlt. Vegyünk fel egy új feladatot: | ||
- | |||
- | <code javascript package.json> | ||
- | { | ||
- | " | ||
- | " | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | Indítsuk el a json szervert: | ||
- | npm run api | ||
- | |||
- | ===== Modul regisztrálása ===== | ||
- | |||
- | Szükségünk van a HttpClientModule nevű modulra. Regisztráljuk: | ||
- | |||
- | <code javascript src/ | ||
- | //... | ||
- | |||
- | import { HttpClientModule } from ' | ||
- | |||
- | export const appConfig: ApplicationConfig = { | ||
- | providers: [ | ||
- | provideRouter(routes), | ||
- | importProvidersFrom(HttpClientModule) | ||
- | ] | ||
- | }; | ||
- | |||
- | </ | ||
- | |||
- | |||
- | |||
- | ===== Szolgáltatás létrehozása ===== | ||
- | |||
- | Készítsünk egy szolgáltatást, | ||
- | ng generate service shared/api | ||
- | |||
- | |||
- | Létrejön két fájl: | ||
- | * src/ | ||
- | * src/ | ||
- | |||
- | Az api.service.ts fájlba írjuk a szolgáltatást. Az api.service.spec.ts a teszt az előbbi állomány számára. | ||
- | |||
- | |||
- | Vegyük az api.service.ts fájl, majd importáljuk a HttpClient: | ||
- | |||
- | |||
- | <code javascript src/ | ||
- | import { HttpClient } from ' | ||
- | </ | ||
- | |||
- | |||
- | A konstruktorba paraméterként vegyük fel a http objektumot: | ||
- | <code javascript src/ | ||
- | constructor(private http: HttpClient) { } | ||
- | </ | ||
- | |||
- | |||
- | Hozzuk létre a host adattagot és a getEmployees() metódust: | ||
- | <code javascript src/ | ||
- | //... | ||
- | |||
- | host = ' | ||
- | |||
- | //... | ||
- | |||
- | getEmployees() { | ||
- | let endpoint = ' | ||
- | let url = this.host + endpoint; | ||
- | |||
- | return this.http.get< | ||
- | } | ||
- | </ | ||
- | |||
- | ===== Employee komponense ===== | ||
- | |||
- | ng generate component employee | ||
- | |||
- | |||
- | Emeljük az employee komponenst az app komponensbe: | ||
- | |||
- | <code html5 src/ | ||
- | < | ||
- | </ | ||
- | |||
- | |||
- | Szerkesszük az **src/ | ||
- | * Importáljuk az **ApiService** osztályt. | ||
- | * Hozzunk létre egy **employees** adattagot. | ||
- | * Injektáljuk az **ApiService** osztályt. | ||
- | * Írjunk egy **getEmployees()** metódust. | ||
- | * Hívjuk meg a getEmployees() metódust a **ngOnInit()** metódusban. | ||
- | |||
- | <code javascript src/ | ||
- | import { Component, OnInit } from ' | ||
- | import { ApiService } from ' | ||
- | |||
- | @Component({ | ||
- | selector: ' | ||
- | templateUrl: | ||
- | styleUrls: [' | ||
- | }) | ||
- | export class EmployeeComponent implements OnInit { | ||
- | employees: any; | ||
- | constructor(private api: ApiService) { } | ||
- | |||
- | ngOnInit(): void { | ||
- | this.getEmployees(); | ||
- | } | ||
- | getEmployees() { | ||
- | this.api.getEmployees().subscribe({ | ||
- | next: data => { | ||
- | this.employees = data; | ||
- | }, | ||
- | error: err => { | ||
- | console.log(' | ||
- | } | ||
- | }); | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | ===== Sablonfájl ===== | ||
- | |||
- | |||
- | <code html src/ | ||
- | < | ||
- | < | ||
- | <tr *ngFor=" | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </tr> | ||
- | </ | ||
- | </ | ||
- | |||
- | |||
- | |||
oktatas/web/angular/angular_httpclient/egyszeruen.1709485282.txt.gz · Utolsó módosítás: 2024/03/03 18:01 szerkesztette: admin