Kapcsolódó információk:
Paraméterezési útmutatók

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.

GET | POST | PUT

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.

 Figyelem

Az API korlátozza a másodpercenkénti hívások számát, mivel a terhelhetőség erősen függ a működési környezettől. Az API-t használó programnak figyelnie kell rá, hogy a 2 hívás/másodperc értéket ne lépje túl.

API tesztelése

GET | POST

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.

Hívás minta - API elérhetősége - böngészőből is meghívható
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.

Hívás minta - Authentikációs adatok használata
CURL.EXE 	^
  -X POST   ^
     http://server:8080/dbconnector/api/v1/test	^
	-H pkod:SajatSupPartnerKod	^
	-H lickod:SajatSupLicKod
Válasz minta
<?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.

 Figyelem

Az API hívás sikerességét alapvetően a http statuskóddal kell ellenőrizni A válasz XML-ben levő <StatusCode> inkább csak a tájékoztatás, és az információk jobb olvashatósága miatt van

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.

 Figyelem

Az internetre delegált API esetén a dokumentációban leírt <DbConnectorResponse> típusú válaszok mellett más (HTML, JSON) válaszok is előfordulhatnak, attól függően, hogy az API milyen eszközzel lett kiadva az internet felé. Tehát a válaszok kezelésénél a http status kódot célszerű először vizsgálni.

A QSoft Kft. az API kipróbálásához webes teszt-felületet hozott létre, mely elérhető: https://dbconnector-apitest.sup.hu helyen.
A teszt API szintén elérhető az internetről is: https://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.