A DbConnector alkalmazáshoz kapcsolódó API felület egy korszerűbb interface technika a hagyományos file alapú megoldásokhoz képest. Az API felület egyes funkciói a DbConnector alkalmazás néhány funkcióját nyújtják azonban vannak olyan lehetőségek is, amik csak ezzel a technikával érhetők el.
A DbConnector API egy intranetes webszolgáltatás, mely XML alapú REST API hívásokkal működtethető.
Az REST API felületen keresztül elérhető lehetőségek
Az API elérhetősége
Az API a következő belépési ponton érhető el. A szerver név a helyi intranetet környezettől függ.
http://server/dbconnector/api/.....
Az egyes funkciók az innen nyíló al-verbeken érhetők el. A válaszok XML-ben érkeznek.
Minden API híváskor az autentikációs adatokat a HTTP header-ben kell beküldeni.
Header paraméterek pkod:SajatSupPartnerKod
lickod:SajatSupLicKod
A licence adatok a SUP rendszert felhasználó cég számára átadott adatlapon találhatók.
- pkod - SUP partnerkód. A felhasználónál telepített SUP példányt azonosítja. A Szerviz | Névjegy menüpontban is megtalálható.
- lickod - SUP licence kód. A licence használathoz szükséges kód.
Egyes hívásokhoz további header paraméter szükséges
- cegkod - Könyvelt cég (adatbázis) azonosítója a SUP-ban.
A cégkódot az API-t üzemeltető cég adja meg. A SUP® rendszerben a Szerviz | Könyvelt cégek menüpontból olvasható ki.
Egyes verb-eknél további header paraméterek átadása is szükséges lehet.
API tesztelése
http://server/dbconnector/api/v1/test
A hívás célja az API elérhetőségének tesztelése. Az elérhetőség egyszerű tesztelésére bármely böngésző alkalmas.
A komplex teszteléséhez pl.: a széles körben elterjedt CURL használható.
Alapesetben csak az API elérhetőségét teszteljük. Ez ekvivalens a böngésző címsorból meghívott móddal.
CURL.EXE ^ -X GET ^ http://server/dbconnector/api/v1/test
A teljes teszthez meg kell adni a hitelesítő adatokat is. Siker esetén az aktuális verziószám a válasz.
CURL.EXE ^ -X POST ^ http://server:8080/dbconnector/api/v1/test ^ -H pkod:SajatSupPartnerKod ^ -H lickod:SajatSupLicKod
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <DbConnectorResponse> <Success>true</Success> <StatusCode>200</StatusCode> <Message>API build: 1.0.6536M (2018.08.09. 16:07:30)</Message> </DbConnectorResponse>
Minden API hívás egy <DbConnectorResponse>
típusú XML válasszal tér vissza
A <Success>
arra vonatkozóan ad információt, hogy a hívás sikeres volt-e
A <StatusCode>
megegyezik a http statuskóddal
Kliens implementáció
A kliens implementáció első lépése az API működésének tesztelése. A tesztelés két üzemmódban lehetséges.
- API url elérhetőségének ellenőrzése
- API tesztelése az adott feladathoz igazodva
A működés teszteléséhez a széles körben elterjedt CURL használható. Szintén használhatók a különböző böngészőkhöz készített bővítmények, vagy az erre a célra fejlesztett önálló szoftverek, pl.: PostMan.
Hibakezelés - hibakódok
Az XML result-ban visszaadott státuszkódok megegyeznek a HTTP hívás státuszkódjaival. A fejlesztés során inkább a HTTP státuszkódokkal érdemes dolgozni, mert előfordulhat olyan eset (pl.: time out), hogy a HTTP kérés válaszban nem az elvárt XML üzenet jön, hanem csak egy hibakód.
A HTTP státuszkódokkal az RFC 7231 foglalkozik. A DbConnector API válaszok is ebbe a logikába illeszkednek. A kódlista bővítésének jogát fenntartjuk.
Az API a következő státuszkód tartományokkal dolgozik. Ehhez a logikához cészerű igazítani a kliens fejlesztést.
- 100 - információk - az API-ban nincs használatban
- 200 - success
- 300 - redirection - az API-ban nincs használatban
- 400 - client errors - a hívás során van valamilyen probléma
- 500 - server errors - különböző szerver oldali feldolgozási, vagy konfigurálási hiba
A ténylegesen használt kódok a következők:
- 200 OK
- 290 Not yet processed
- 401 Unauthorized
- 404 Not Found
- 490 Auth param missing
- 491 Body or param missing
- 492 XML ERROR
- 493 Already exist
- 494 Too long time not processed
- 495 Error on processing
- 499 Other error
- 590 INI error
- 591 Database connect error
- 592 Other Exception
Intraneten kívüli használat
Az API alapvetően intranetes felhasználásra készült. Nincs akadály annak, hogy megfelelő biztonsági feltételek megteremtésével az internet irányából is használható legyen.
A QSoft Kft. az API kipróbálásához webes teszt-felületet hozott létre, mely elérhető: http://dbconnector-apitest.sup.hu helyen.A teszt API szintén elérhető az internetről is: http://dbconnector-apitest.sup.hu/api címen.
A használathoz, teszteléshez szükséges azonosító kódok előzetes egyeztetés után lesznek létrehozva.