SOAP és REST webszolgáltatások alapjai
SOAP és REST webszolgáltatások alapvetően két különböző megközelítést jelentenek az adatok cseréjére webes környezetben.
SOAP (Simple Object Access Protocol)
Jellemzők:
-
XML alapú protokoll, amelyet webszolgáltatások közötti kommunikációra terveztek.
-
Erősen strukturált és szabványosított (pl. WS-Security, WS-ReliableMessaging).
-
WSDL (Web Services Description Language) fájlt használ az interfész és az üzenetformátum leírására.
-
Transport független (nem csak HTTP, hanem SMTP, JMS stb. is használható).
-
Erősen tipizált, ami előnyt jelenthet komplex üzleti logika esetén.
SOAP Üzenetstruktúra:
-
Envelope – Az üzenet teljes csomagolása.
-
Header – Metaadatokat tartalmazhat (pl. biztonsági tokenek).
-
Body – Az üzenet fő tartalma (a tényleges adat).
-
Fault – Hibaüzenetek esetén használatos.
SOAP Példa egy XML üzenetre:
SOAP előnyei és hátrányai:
✅ Előnyök:
-
Platform- és nyelvfüggetlen.
-
WS-* szabványok révén biztonságos (WS-Security, WS-Policy).
-
Jobban támogatott vállalati rendszerekben (pl. banki API-k).
❌ Hátrányok:
-
Nagyobb adatforgalmat generál az XML formátum miatt.
-
Nehezebb implementálni és karbantartani.
-
Kevésbé rugalmas a modern, könnyű API-khoz képest.
REST (Representational State Transfer)
Jellemzők:
-
HTTP protokollra épülő, könnyűsúlyú architektúra.
-
Általában JSON vagy XML adatformátumot használ.
-
Nincsenek kötelező szabványok, inkább best practice-ek léteznek.
-
CRUD (Create, Read, Update, Delete) műveleteket a HTTP metódusokon keresztül valósítja meg:
-
GET – Adatok lekérése.
-
POST – Új erőforrás létrehozása.
-
PUT – Meglévő erőforrás módosítása.
-
DELETE – Erőforrás törlése.
-
REST API példák:
1. GET kérés JSON válasszal
Kérés:
Válasz:
2. POST kérés új felhasználó létrehozására
Kérés:
Válasz (201 Created):
REST előnyei és hátrányai:
✅ Előnyök:
-
Egyszerű, gyors, könnyen implementálható.
-
JSON támogatása miatt kevesebb sávszélességet használ.
-
Könnyen integrálható különböző rendszerekkel és frontendekkel.
❌ Hátrányok:
-
Kevésbé szabványosított, mint a SOAP.
-
Biztonsági megoldások implementálása az API fejlesztő feladata (OAuth, JWT, API key).
-
Nem ideális komplex üzleti logika esetén (például tranzakciókezelés).
SOAP vs REST összehasonlítás
Tulajdonság | SOAP | REST |
---|---|---|
Adatformátum | XML | JSON, XML, más |
Szabványosítás | Erősen szabványosított | Nincsenek kötelező szabványok |
Biztonság | WS-Security, WS-Policy | OAuth, JWT, API key |
HTTP metódusok | Nem követi az HTTP metódusokat | CRUD műveletekhez igazodik |
Általános használat | Banki, vállalati rendszerek | Mobilalkalmazások, web API-k |
Adatméret és sebesség | Nagyobb méret, lassabb | Könnyebb, gyorsabb |
SoapUI és Postman használata
SoapUI
-
SoapUI egy népszerű eszköz SOAP és REST API-k tesztelésére.
-
Lehetővé teszi a WSDL alapján generált kérések küldését.
-
Automatikus validáció és teszt szkriptelési lehetőségek (Groovy scripting).
-
Kiválóan alkalmas vállalati API-k és összetett tesztek automatizálására.
SoapUI használata SOAP webszolgáltatás tesztelésére:
-
WSDL Importálása: Nyisd meg a SoapUI-t → New Project → Add WSDL.
-
Request küldése: Kattints a generált SOAP kérésre és szerkeszd az adatokat.
-
Tesztfuttatás: Küldd el a kérést és nézd meg a választ.
Postman
-
Postman főként REST API tesztelésére használt eszköz.
-
Támogatja az API key, OAuth 2.0 és más autentikációs módszereket.
-
Automatikus request/response formázás (JSON, XML, raw text).
-
Képes szkriptek és automatizált tesztek végrehajtására JavaScript-ben.
Postman használata REST API tesztelésére:
-
Új kérés létrehozása: Kattints a „New Request”-re, add meg az URL-t.
-
Metódus kiválasztása: GET, POST, PUT, DELETE stb.
-
Adatok beállítása: Headers, Body (JSON formátumban).
-
Kérés küldése: „Send” gombbal.
-
Válasz elemzése: JSON válasz, státuszkódok és időmérés.
Összegzés
-
SOAP jól strukturált, erős biztonsági és szabványos megoldásokat kínál, de nehezebb és lassabb.
-
REST egyszerűbb, rugalmasabb és jobban illeszkedik a modern webes és mobil környezetekhez.
-
SoapUI a SOAP webszolgáltatások tesztelésére, Postman pedig REST API-k tesztelésére kiváló eszköz.
1. API hitelesítési módszerek és tesztelésük
Az API-k hitelesítése elengedhetetlen a biztonságos adatkezeléshez. A leggyakrabban használt hitelesítési mechanizmusok:
1.1 API kulcs (API Key)
-
Az ügyfél egy előre generált egyedi API-kulcsot kap, amelyet a kérésekben elküld.
-
Használat REST API esetén:
-
Az API kulcs az
Authorization
headerben vagy query paraméterként szerepel.
-
📌 Példa Postman-ben API Key hitelesítés tesztelésére:
-
Nyiss egy új GET kérést a Postman-ben.
-
URL:
-
Vagy headerben küldd:
-
Küldd el a kérést, és ellenőrizd a válasz státuszát (
200 OK
vagy403 Forbidden
).
1.2 Basic Authentication (Felhasználónév/Jelszó)
-
HTTP alapú hitelesítés, ahol az
Authorization
fejlécben egy base64 kódolt felhasználónév/jelszó páros található. -
Használat:
-
Authorization: Basic base64(felhasználónév:jelszó)
-
📌 Példa:
-
Postman-ben:
-
Authorization
fül →Basic Auth
kiválasztása. -
Add meg a felhasználónevet és jelszót.
-
-
A kérés
Authorization
fejlécében így jelenik meg:
1.3 OAuth 2.0 (Access Token alapú hitelesítés)
-
Az ügyfél először egy OAuth szervertől hozzáférési tokent kér, majd minden API kérésben ezt használja.
-
Használat REST API esetén:
-
Authorization: Bearer <access_token>
-
📌 Példa Postman-ben OAuth 2.0 tesztelésre:
-
Request Token lekérdezése:
Body:
-
Access Token használata API híváshoz:
1.4 SOAP WS-Security (Username Token, Timestamp, Signature)
SOAP esetén a hitelesítés történhet WS-Security szabványok szerint.
📌 Példa WS-Security SOAP üzenetre:
📌 SoapUI WS-Security beállítása:
-
Request szerkesztése: Nyisd meg a SOAP kérést.
-
WS-Security header hozzáadása:
-
Kattints az
Auth
fülre →Add WSS UsernameToken
. -
Adj meg egy felhasználónevet és jelszót.
-
-
Tesztelés: Küldd el a kérést és ellenőrizd a válasz státuszát.
2. Performancia vizsgálat API-k esetén
A teljesítményvizsgálatok célja az API válaszidejének, terhelhetőségének és skálázhatóságának ellenőrzése.
2.1 JMeter használata API performancia tesztelésre
Apache JMeter az egyik legnépszerűbb eszköz API teljesítményteszteléshez.
📌 Alap teszt beállítása JMeter-ben:
-
Thread Group létrehozása:
-
Állítsd be a párhuzamos kérések számát (pl. 100 thread).
-
-
HTTP Request hozzáadása:
-
Állítsd be az API végpontot és a metódust (pl.
GET /users
).
-
-
Listeners hozzáadása:
-
View Results Tree
ésSummary Report
a válaszidők elemzéséhez.
-
-
Teszt futtatása:
-
Kattints a „Start” gombra és elemezd a válaszidőket.
-
📌 Jelentős metrikák:
-
Response Time (ms) – API válaszideje.
-
Throughput (requests/sec) – Másodpercenkénti kérések száma.
-
Error Rate (%) – Sikertelen válaszok aránya.
2.2 Load tesztelés Postman-ben
Postman újabban támogatja az egyszerűbb teljesítménytesztelést is.
📌 Load teszt Postman Collection Runner-rel:
-
Készíts egy Collection-t a tesztelendő API kérésekkel.
-
Nyisd meg a Runner-t, állítsd be:
-
Iteration (ismétlések száma): Pl. 1000.
-
Delay (késleltetés kérésenként): Pl. 100 ms.
-
-
Futtasd és elemezd az eredményeket.
2.3 K6 – Modern Load Testing eszköz
Ha fejlesztőbarát, JavaScript alapú load tesztelő eszközt keresel, a K6 jó választás lehet.
📌 Egyszerű K6 szkript egy REST API tesztelésére:
📌 Futtatás parancssorból:
Összegzés
✅ API hitelesítés:
-
REST: API Key, Basic Auth, OAuth 2.0.
-
SOAP: WS-Security, Username Token.
✅ Performancia tesztelés:
-
JMeter: Nagyméretű terheléses tesztek.
-
Postman Runner: Egyszerűbb load tesztek.
-
K6: JavaScript-alapú modern tesztelés.
API Hitelesítési Teszt Scriptek
API kulcs tesztelése Postman-ben (Pre-request Script)
Postman-ben használhatsz pre-request scripteket az API kulcs beállításához.
📌 Pre-request Script:
📌 Ellenőrzés a Tests fülön:
OAuth 2.0 Token lekérése és használata (Postman Pre-request Script)
Postman-nel automatikusan lekérheted a tokent, majd használhatod a további kérésekhez.
📌 Pre-request Script OAuth 2.0 token lekérésére:
📌 Request fejlécekben használat:
SOAP WS-Security Token beállítása SoapUI-ban (Groovy Script)
SOAP API-k esetén WS-Security tokent adhatsz hozzá a kéréshez.
📌 Groovy Script egy UsernameToken létrehozásához SoapUI-ban:
API Performancia Teszt Scriptek
JMeter HTTP API Teszt Szkript
JMeter-ben az alábbi XML konfigurációval lehet REST API teljesítménytesztet végezni.
📌 JMeter test plan (testplan.jmx
) – 100 egyidejű felhasználó, 10 másodpercig
📌 Futtatás JMeter-ben:
K6 Load Test Szkript REST API-hoz
📌 K6 szkript – 50 párhuzamos felhasználó, 30 másodpercig
📌 Futtatás parancssorból:
Load Teszt Postman-ben (Collection Runner)
Postman is használható teljesítménytesztelésre az alábbi módon.
📌 Collection Runner beállítások:
-
Iteration count: 1000
-
Delay: 50 ms
-
Run with: JSON test script
📌 Tests fülön validálás:
Összegzés
✅ API hitelesítési tesztek:
-
Postman pre-request script API kulcshoz és OAuth 2.0 tokenhez.
-
SOAP WS-Security hitelesítés Groovy szkripttel SoapUI-ban.
✅ Performancia vizsgálati szkriptek:
-
JMeter XML konfiguráció 100 felhasználóra.
-
K6 load test szkript REST API-hoz.
-
Postman Collection Runner teljesítménytesztelés.
Megjegyzések
Megjegyzés küldése