A Billingo készítésénél külön prioritással kezeltük, hogy legyen külön API - azaz alkalmazás fejlesztési interfész ami a lehetőleg könnyen kezelhető. A Billingo 4.0 fejlesztéssel pedig az API is megújult. Összeszedtük a legfontosabb tudnivalókat a Billingo API 2.0-ról.
Leegyszerűsítve, a Representational State Transfer a világháló szoftverarchitektúra stílusa. Azokat a szolgáltatásokat amik eleget tesznek a REST megkötéseinek, RESTful -nak hívják. A megkötésekről és a REST-ről részletesebben többek között itt is olvashatsz.
Annyi fontos, hogy a Billingo API által elérhető szolgáltatásait a GET
, POST
, PUT
és DELETE
HTTP metódusokkal érjük el. A GET a lekérdezésért, a POST a mentésért, a PUT a módosításért a DELETE pedig a törlésért felel.
A különböző szolgáltatásokat, mint például a számlák letöltése vagy partnerek feltöltése különböző URL-eken keresztül érhetjük el, ezek az ún. end-point-ok.
A másik elterjedt stílus a SOAP.
A Billingo már az első verzió óta, az egyszerűség, az elterjedt könyvtárak, könnyebb tesztelhetőség és egyéb okok miatt is RESTful API-t használ.
Az eddigiek mellett szerettünk volna még több a Billingóban is használható szolgáltatást megnyitni az API felé. Ezek közül a fontosabbak:
A régen visszaadott letöltési link pedig egy új endpointon lett elérhető. Ennek a használatával nyomon következő, hogy egy számlát megnyitottak-e vagy sem.
A JavaScript Object Notation egy kis méretű, ember által olvasható, nyílt adatstruktúra, amely ugyan a JavaScript nyelvből gyökerezett. Mára már teljesen nyelvfüggetlen.
Előnye az XML-el szemben, hogy sokkal kevesebb leíró adatot tartalmaz. Egyszerűbben szerkeszthető és gyorsabban feldolgozható.
A másik hasonló adatstruktúra formátum a YAML amit gyakran rendszer konfigurációhoz használnak.
Azt, hogy JSON-t fogunk használni az nem is volt kérdéses.
A JSON fájl séma mentes, ha nincs szintaxis hiba, akkor bármilyen mezőket tartalmazhat. Ez ugyan megkönnyíti a fejlesztést, de nehezíti a standardizálást egy API esetében.
Emiatt az egyik fő váltás az új API rendszerben a JSON-Schema használata lett. Amit a jelenlegi verzióban csak a fogadott adatokra terjesztettünk ki, azonban hamarosan már a visszaküldött adatokhoz is elérhetőek lesznek a JSON sémák.
További olvasni való a JSON sémáról: http://json-schema.org/
A REST állapotmentes, ez egyszerűbben mondva azt jelenti, hogy az egyik szolgáltatás elérése után nincs állapot információnk (pl. bejelentkezés, stb.) a soron következő szolgáltatás meghívása esetén. Emiatt minden szolgáltatás meghívásnál hitelesíteni kell, hogy melyik felhasználó hívta meg az API-t, volt-e joga hozzá. Lehetőleg biztonságosan. Tehát ha valaki "lehallgatja" a két rendszer közötti kommunikációt, akkor ne tudjon a bejelentkezési adatokkal más információt küldeni vagy letölteni.
Talán ez volt az egyik pont, ahol bakit követtünk el az első rendszernél. Viszonylag egyedi digitális aláírásos rendszert használtunk a hitelesítéshez, viszont főleg azért, mert nem volt szabad formátum. Nehézkesen volt használható, és nem volt mindig egyértelmű, hogy miért nem működik valakinél.
Emiatt a 2.0 -ás rendszerben már az ún. JSON Web Token azaz JWT-t használjuk a hitelesítéshez és minden esetben HTTP fejlécként adjuk át a hitelesítő kódot.
Ezzel talán sikerült tovább folytatnunk az ádáz küzdelmünket a szabványosításért. :)
Annak érdekében, hogy minél egyszerűbben használható legyen az új Billingo API, a jobb dokumentáció mellett (ami innen elérhető) új PHP könyvtárakat is írtunk. Mindegyik szabadon felhasználható, MIT licenszű.
Az első elkészült könyvtárak a Connector könyvtár, ami a HTTP hívásokat és az authentikálást segíti és ugyanez a könyvtár a Laravel keretrendszerhez.
Ezen kívül készülünk még egy DataMapper könyvtárral. Ez az összes szolgáltatást egyszerűen kezelhető osztályokká alakítja, és természetesen szeretnénk a későbbiekben további nyelvekre is lefordítani őket.
A könyvtárak elérhetőek Packagist -en is, és Composerrel telepíthetőek. Így folyamatosan és automatikusan frissen tarthatóak.
Hivatalos: Taroltunk a Marketing Diamond Awardson! 14 díjazott pályamunkával nemcsak az Év Vállalata címet hoztuk el, hanem a megbízói toplista élére is felkerü...
Február 22-én, a rangos Companies for the Future Award 2025 gálaeseményen a Billingo Technologies Zrt. elnyerte a középvállalati kategória első helyezését! A Jo...
Már 10 éve részese a magyar vállalkozások életének a Billingo online számlázó, ami most ünnepli megalapításának 10. évfordulóját. A cég elsősorban a mikro-, kis...
A Joint Venture Szövetség immár harmadik alkalommal rendezte meg a Companies for the Future Award gálát, ahol idén Besztró Szabolcs, a Billingo Operatív és Stra...
A magyar vállalkozások többsége szerint az MI időt és energiát spórol a cégeknek. A mesterséges intelligencia üzleti célú használatára már Magyarországon is ...
Itt a nagy leleplezés: a Billingo háza táján óriási fejlesztések folynak a háttérben, amely nemcsak a számlázást helyezi új alapokra. Vezérigazgatónk, Sárospata...