A sERPa Interfész funkció egy API készítő API, amivel a működési mód függvényében API-kat, illetve API klienseket definiálhatunk. Szolgáltató: "sERPa" működési módban a sERPa biztosít API-t a külső rendszernek, míg Szolgáltató: "Külső rendszer" esetén a sERPa veszi igénybe a külső API szolgáltatásait.
Ebben a topicban a "Külső rendszer" működési módú interfészeket tárgyaljuk.
A külső rendszer használatával üzleti adatokat továbbítunk, ezért lehetőleg titkosított (https) protokollt használjunk.
A Postman egy komplett eszköztár API fejlesztők részére, a programmal gyorsan és hatékonyan lehet dolgozni az API-val, mivel támogatja a fejlesztők minden munkafolyamatát, továbbá elérhető Mac OS X, Windows, Linux és Chrome felhasználók számára is. Ez lehetőséget nyújt a sERPa felhasználók számára, hogy külső szolgáltató esetén teszteljék és megismerjék az API-kat.
A postman letölthető az alábbi linken: https://www.postman.com/downloads/
Mock szerver konfigurálása:
A mock szerver egy olyan eszköz, amivel szimulálni tudjuk a kiszolgáló működését. Esetünkben ahhoz, hogy a sERPában a műveleteket tesztelni tudjuk szükség van egy olyan külső rendszerre, ami szimulálja az ellenoldal viselkedését.
•Először a bal oldali menüben a Mock Servers menüre kell kattintani.
•Ezután felül a New gombra.
•A Felugró ablakon pedig ki kell választani a Mock Server lehetőséget.
•Ezután a collection fül jelenik meg. Ez az ami a végpontokat jelenti. A Mock server elkészítése önmagában nem elég és itt rontottam el a múltkor. A serverhez ugyan úgy ahogy a serpa esetében elemeket kell felvenni különböző végpontokkal. Ez a lépés maradt ki nekem a múltkor. A request becsenget a mock szervernek és a megfelelő végponton kommunikál (logikus, csak nem tudtam hogy kell ezt megcsinálni ez előtt). Ez talán kipróbálás szempontjából nehezebb mint amikor a serpa a szolgáltat
•A következő fülön elég a nevet megadni esetünkben. Majd create.
•A felugró ablakon a megjelent urlt kell használni az API definiálásánál az alap adatoknál.
•A válaszokat a gyűjtemények között lehet definiálni. Az elkészített mock server bekerül a gyűjtemények közé. Alatta található a mock server maga, az előbb kimásolt URL-rel, alatta pedig az a „gyűjtemény”, vagyis végpontok, amik a válaszokat tartalmazzák.
1.Az első fül a "gyűjtő mappa" ide kerül minden olyan szerver, végpont, hívás, ami az adott mockszerver "témájához" tartozik
2.A második nyílnál van maga a mockszerver. A megadott URL-en a kérések az adott szerverre futnak be.
3.A harmadik nyílnál az adott híváshoz tartozó végpontot találjuk. Ahogy abban az esetben amikor a serpa a szolgáltató egy URL-hez több végpont is tartozhat, ez a külső rendszernél is igaz. Tehát egy szervernek minden híváshoz tartozhat akár 1-1 végpont.
•A válaszokat az adott vépont bodyjában kell megadni. Ez az alsó szövegmező. A felső szövegmezőben a request JSON-t kell megadni, amennyiben ez szükséges. A JSON adatot a sERPában elvárt módon kell itt is megadni.
Egy [] jelöli a tömböt melyben vesszővel elválasztva {} belül helyezkednek el az objektumok
•Új példát a mock serverre jobb gombbal kattintva majd az Add example menüpontot kiválasztva lehet megadni.
Megnyitva a Mock server áttekintést láthatjuk, hogy milyen kérdéseket intézett a sERPa a szerverhez. A táblázatban láthatjuk az egyes URL-ekre beérkezett requestet és a szerverünk által adott választ vagyis response-t.
Az áttekintő ablak tetején lévő Refresh Logs gombbal tölthetjük újra az eseményeket. Abban az esetben, ha csak beérkező adat van, vagy rossz URL-re érkezik be a kérés, amire választ várunk, a response oszlopban No matching request figyelmeztetést kapunk.
Egy szervernek több végpontja lehet ugyan úgy mint a sERPában definiált API-nak. A Mock szerverben megadott példák a külső szerver végpontjai. (A sERPában ez az API / Elemek fülön található végpontoknak felenek meg)
A URL után megadott végpont névnek meg kell egyeznie a sERPában definiált elem végpontjával.
Adatátadás külső rendszernek típusú API esetén a serpában bekövetkezett esemény hatására a sERPa meghatározott információt ad át az ellenoldalnak. Ez az esemény lehet ütemezett vagy trigger által kiváltott.
Ezt az alábbi mezőben megadott értékkel tudjuk beállítani.
Ütemezett eseményt a Működési gyakoriság mező értékével lehet megadni. A legördülő listában kiválasztható értékek a következők:
•negyedóránként
•félóránként
•óránként
•naponta
Ebben az esetben a megadott időnként végzi el a műveletet. A Triggert a Trigger feltétel funkcióban kell definiálni.
Példa:
A példában egy olyan trigger feltétel van definiálva, ami az Interfész besorolású termékeken történt változásokat figyeli. Amennyiben ezekben a termékek adataiban válotás történik a sERPa adatot küld a külső rendszernek.
A működéséhez szükséges még egy Eredményhalmaz definiálása is. Az eredményhalmaz bemenő paraméterének meg kell egyeznie a trigger által átadott értékkel.
Példánkban ez egy Termék ID. Tehát olyan eredményhalmaz kell most, aminek a bemenő paramétere a Termék ID.
A trigger hatására az eredményhalmaz megkapja a Termék ID-t lefut és a Eredményhalmaz eredményét a megadott adatstruktúrával (XML, JSON) átadja a külső rendszernek.
A metódus ebben az esetben POST.
Ha jól van beállítva a mock szerverünk, akkor az eredmény azonnal látszik. Nem kell meglepődni ha a response mezőben error üzenet van. Esetünkben nem definiáltunk választ és nem is feltétlen várunk el.
A Refresh gombra kattintva tölthetők be a request-response körök ahol a táblázatban látszik mikor érkezett be a kérés, hova érkezett be a kérés és honnan érkezett a válasz (melyik végpontról)
Adatlekérdezés külső rendszerből típusú API-nál a sERPa átad egy adatot, amit a külső rendszer feldolgoz és a ennek megfelelően adatot szolgáltat a sERPának. A sERPa a beérkezett adatot feldolgozza és a felhasználó által definiált műveletet elvégezteti a programmal.
Adott tehát egy API végpont definíció:
A metódus ebben az esetben is POST.
A működést itt is kettőféleképpen állíthatjuk be. Az előzőhöz hasonlóan itt is lehet időközönkénti működés vagy trigger által kiváltott működés. A működése megegyezik a fent leírtakkal.
Az előző típushoz hasonlóan itt is definiálni kell egy Eredményhalmazt. Az eredményhalmaz eredményét átadja az ellenoldalnak. Az ellenoldal a meghatározott működésnek megfelelően feldolgozza az adatokat és ad egy választ.
A művelet paraméter táblázatban lehet megadni, hogy a művelet mely adatokkal tudjon dolgozni. A működése megegyezik azzal a működéssel, amikor a sERPa a szolgáltató.
Példa:
Esetünkben termékfelvétel-módosítás-törlés művelet van hozzárendelve a végponthoz. A sERPa küld egy adatot, ez lehet például egy termék név, kód, ID. Az ellenoldalnál van egy meghatározott működés, például:
•Az átadott termék név, kód, ID-vel keresse meg a külső rendszerben a terméket és az értékeket adja vissza válaszként. A választ a sERPa feldolgozza és ha szükséges módosít rajta.
•Az is előfordulhat, hogy van olyan termék ami a külső rendszerben szerepel, de nálunk még nem. Ebben az esetben a sERPának meg lehet adni, hogy a válasz terméket vegye fel a rendszerbe.
Trigger esetén a működés ugyanez, csak ebben az esetben egy esemény váltja ki a kérdés-válasz kört.