Billingo.hu A Billingo online számlázó blogja. Gyors és élvezetes elektronikus számlázás.
Blog / Velünk történt / Billingo API 2.0…
Velünk történt - 2016.03.10. - 3 p. olvasás

Billingo API 2.0

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.

Billingo API

REST

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.

Új megnyitott szolgáltatások

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:

  • Kiadások kezelése
  • Számlák kifizetésének a beállítása
  • Számlák emailben küldése
  • Számlák stornózása
  • Számlák letöltése

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.

JSON

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.

JSON séma

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/

Hitelesítés

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. :)

Könyvtárak

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.

Címkék

Blog cikk értesítő

Blog cikk értesítő

Iratkozz fel, ha szeretnél tudni a számlázással kapcsolatos legfrissebb hírekről és érdekelnek az akciók.

Back to Top
online számlázás vállalkozás NAV nav online számla KATA adózás webáruház könyvelés kéziszámla marketing integráció koronavírus szakértői cikk számlasablon biztonság pályázat digitális archiválás számlázó program váltás Billingo ajánlói rendszer fintech áfa API pénztárgép átalányadó devizás számlázás ügyfélszolgálat online fizetés GDPR bankszámlaszám webshop létrehozás adóváltozás kiva 2023 adózás tender pályázati kiírás napkollektor napelem napelem pályázat napelem-pályáza pályázati feltételek shopify patreon etsy tao költségcsökkentés digitalizáció övtj bevételi összeghatár digitális névjegykártya változások munkajog mtk. munka törvénykönyve áremelés beszállítás beszállító minimálbér garantált bérminimum teljesítménybér szocho 30 év alatti anyák kedvezménye adómentes adóalap összeghatár egyéni vállalkozás adószámos magánszemély briefly meska ügyfélkapu ányk hipa Általános Nyomtatványkitöltő Programot kereskedelmi és iparkamara szabadúszó vállalkozó iparűzési adó számla kelte számla teljesítés fordított áfa fordított adózás teszor teáor prémium magyar állampapír infláció inflációkövetés inflációkövető PMÁP befektetés helyi iparűzési adó adótörvény adókártya adóazonosító jel adóazonosító ingatlan bérbeadás vállalkozóként ingatlan bérbeadás lakás kiadás katásként átalányadózó lakáskiadás kiadó ház weboldal digitalizálás adókonferencia adózás 2023