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.
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...
Gőzerővel dolgozunk azon, hogy az átalányadózók év végi hajrája könnyebb legyen. Az utolsó negyedév sosem egyszerű egy vállalkozónak, de mi igyekeztünk azzá ten...
Óriási szükség van arra, hogy a vállalkozások előre tervezzenek, gyorsan és hatékonyan tudjanak reagálni a változásokra. A marketing területére különösen igaz e...