Miért kell?

Az új képzési törvényben nagy szerepet kapnak a RestAPI-k. A vizsgaremek értékelésénél is nevesítve van, így nem csak a használatát kell ismerni, de a sikeres vizsgaremeknek tartalmaznia is kell.

Az interneten egyre több API érhető el. Itt egy szép GitHub-os gyűjtemény Mielőtt hozzákezdenél a sajátod elkészítéséhez érdemes ezek közül kipróbálni néhányat.

Mi az a REST API?

A REST a 'REpresentational State Transfer' rövidítése. Roy Fielding informatikus publikált először erről a megoldásról még 2000-ben. Célja a hálózati terhelés csökkentése és az általános célú felhasználhatóság volt. Napjainkban megkerülhetetlenné vált a használata. Bővebben itt és kliensek és végpontok.

Vezérelvek - megszorítások

Kliens-szerver architektúra
A kliensek el vannak különítve a szerverektől egy egységes interfész által. Az érdekeltségek ilyen nemű szétválasztása azt jelenti, például, hogy a kliensek nem foglalkoznak adattárolással, ami a szerver belső ügye marad, és így a kliens kód hordozhatósága megnő. A szerverek nem foglalkoznak a felhasználói felülettel vagy a kliens állapotával, így a szerverek egyszerűbbek és még skálázhatóbbak lehetnek. A szerverek és kliensek áthelyezhetőek és fejleszthetőek külön-külön is, egészen addig amíg az interfész nem változik meg.
Állapotmentesség
Az állapotmentesség egy olyan kommunikációs protokoll, amiben a kérést fogadó szerver nem tárol el adatot a kliensről. A kliens-szerver kommunikáció állapotmentes az által, hogy minden egyes kérés bármelyik klienstől tartalmazza az összes szükséges információt a kérés kiszolgálásához, és minden állapotot a kliens tárol. A szerver lehet állapottartó; ez a korlátozás csupán azt követeli meg, hogy a szerver oldali erőforrás-állapotok URL által címezhetőek legyenek. Ez nem csak a szerver felügyeletét teszi lehetővé, de megbízhatóbbá teszi őket a hálózati meghibásodásokkal szemben, valamint tovább fokozza a skálázhatóságot.
Gyorsítótárazhatóság
Mint ahogy a világhálón, a kliensek és a közvetítők képesek gyorsítótárazni a válaszokat. A válaszoknak ezért közvetlenül vagy közvetve tartalmazniuk kell, hogy gyorsítótárazhatóak-e vagy sem. Így elkerülhető, hogy a kliens téves vagy elavult adatokat használjon fel újra. Egy jól implementált gyorsítótár lehetővé teszi, hogy teljesen megkerüljünk egyes kliens-szerver interakciókat, ezzel megnövelve a rendszer skálázhatóságát és a teljesítményét.
Réteges felépítés
Egy kliens általában nem tudja megmondani, hogy közvetlen csatlakozott-e a végpont szerverhez, vagy közvetítő segítségével. A közvetítő szerverek megnövelhetik a rendszer skálázhatóságát terheléseloszlással és megosztott gyorsítótárak használatával.
Igényelt kód (opcionális)
A szerverek képesek időlegesen kiterjeszteni vagy testre szabni egy kliens funkcionalitását, programrészek átadásával, amelyeket a kliens futtatni képes. Ide tartoznak az előre fordított komponensek (pl. Java appletek) és a kliensoldali szkriptek (pl. JavaScript).
Egységes interfész
Az egységes kliens-szerver interfész alapvető a RESTful rendszerek tervezéséhez. Egyszerűsíti és elválasztja az architektúrát. Ezáltal lehetővé teszi, hogy egymástól függetlenül fejlődjenek az egyes részek.

forrás...

Működés

REST API model
REST API model

HTTP kérési módok

  • GET - A GET metódus a megadott erőforrás ábrázolását kéri. A GET kérések csak adatokat kérhetnek le.
  • HEAD - A HEAD metódus a kéréssel azonos választ kér, de a választörzs nélkül.
  • POST - A POST metódus egy entitást küld el a megadott erőforráshoz, ami gyakran állapotváltozást vagy egyéb hatásokat okoz a kiszolgálón.
  • PUT - A PUT módszer lecseréli a célerőforrás összes jelenlegi reprezentációját a kérés hasznos adatára.
  • DELETE - A DELETE metódus törli a megadott erőforrást.
  • CONNECT - A CONNECT módszer alagutat hoz létre a célerőforrás által azonosított kiszolgálóhoz.
  • OPTIONS - A OPTIONS módszer leírja a cél erőforrás kommunikációs lehetőségeit.
  • TRACE - A TRACE metódus üzenet-visszacsatolási tesztet hajt végre a cél erőforrás elérési útja mentén.
  • PATCH - A PATCH módszer részleges módosításokat alkalmaz egy erőforráson.

HTTP válaszok

  • 1xx - Tájékoztató
  • 2xx - Sikeres teljesítés
  • 3xx - Átirányítás
  • 4xx - Ügyfél hiba
  • 5xx - Szerver hiba

API key

Egy alkalmazás vagy felhasználó azonosítására és hitelesítésére használt kód. Az API-kulcsok platformokon keresztül érhetők el. Egyedi azonosítóként is működnek, és titkos tokent biztosítanak hitelesítési célokra.

Mivel maga az API-kulcs egy identitás, amely alapján azonosítható az alkalmazás vagy a felhasználó, egyedinek, véletlenszerűnek és nem kitalálhatónak kell lennie. A generált API-kulcsoknak alfanumerikus és speciális karaktereket is kell használniuk. Ilyen API-kulcs például a 'zaCELgL.0imfnc8mVLWwsAawjYr4Rx-Af50DDqtlx'.

Nagyon hasznos ...

Backend pótlék ...