mi a REST API?

posted in: Articles | 0

REST vagy RESTful API design (Representational State Transfer) célja, hogy kihasználják a meglévő protokollok. Míg a REST szinte bármilyen protokollon használható, általában kihasználja a HTTP-t, ha webes API-khoz használják. Ez azt jelenti, hogy a fejlesztőknek nem kell könyvtárakat vagy további szoftvereket telepíteniük a REST API-tervezés előnyeinek kihasználása érdekében. A REST API designt Dr. Roy Fielding határozta meg 2000-es doktori disszertációjában. Figyelemre méltó a hihetetlen rugalmassági réteg., Mivel az adatok nem kötődnek a módszerekhez és az erőforrásokhoz, a REST képes többféle hívást kezelni, különböző adatformátumokat visszaküldeni, sőt strukturálisan is megváltozhat a hypermedia helyes végrehajtásával.

Ez a szabadság és rugalmasság, amely a REST API tervezésében rejlik, lehetővé teszi, hogy olyan API-t építsen, amely megfelel az Ön igényeinek, miközben kielégíti a nagyon változatos ügyfelek igényeit is. A SOAP-tól eltérően a REST nem korlátozódik az XML-re, hanem az XML, JSON, YAML vagy bármely más formátum visszatérhet attól függően, hogy mit kér az ügyfél., Az RPC-vel ellentétben a felhasználóknak nem kell ismerniük az eljárás nevét vagy bizonyos paramétereket egy adott sorrendben.

azonban vannak hátrányai REST API design. Elveszítheti a nyugalmi állapot fenntartásának képességét, például a munkameneteken belül, az újabb fejlesztők számára pedig nehezebb lehet használni. Az is fontos, hogy megértsük, mi teszi a REST API RESTful, és miért ezek a korlátok léteznek, mielőtt az épület az API. Végül is, ha nem érti, miért van valami úgy megtervezve, ahogy van, akadályozhatja erőfeszítéseit anélkül, hogy észrevenné.,

megértése REST API Design

míg a legtöbb API azt állítják, hogy nyugodt, ezek elmaradnak a követelmények és korlátok által kifejtett Dr. Fielding. A REST API tervezésének hat kulcsfontosságú korlátja van, amelyeket figyelembe kell venni annak eldöntésekor, hogy ez a projekt megfelelő API-típusa.

Client-Server

a client-server kényszer azon a koncepción működik, hogy az ügyfélnek és a kiszolgálónak el kell különülnie egymástól, és lehetővé kell tennie, hogy egyénileg és önállóan fejlődjön., Más szavakkal, képesnek kell lennem arra, hogy módosítsam a mobilalkalmazásomat anélkül, hogy befolyásolnám a szerver adatstruktúráját vagy az adatbázis kialakítását. Ugyanakkor képesnek kell lennem az adatbázis módosítására vagy a szerveralkalmazás módosítására anélkül, hogy befolyásolnám a mobil klienst. Ez megteremti az aggodalmak szétválasztását, lehetővé téve, hogy az egyes alkalmazások egymástól függetlenül növekedjenek és skálázódjanak, lehetővé téve a szervezet gyors és hatékony növekedését.,

hontalan

REST API-k hontalanok, ami azt jelenti, hogy a hívásokat egymástól függetlenül lehet kezdeményezni, és minden hívás tartalmazza az összes szükséges adatot a sikeres teljesítéshez. A REST API-nak nem szabad támaszkodnia a kiszolgálón vagy a munkameneteken tárolt adatokra annak meghatározására, hogy mit kell tennie egy hívással, hanem kizárólag az adott hívásban megadott adatokra kell támaszkodnia. Az azonosító adatok nem kerülnek tárolásra a kiszolgálón, amikor hívásokat kezdeményez. Ehelyett minden hívásnak megvannak a szükséges adatai, például az API kulcs, az access token, a user ID stb., Ez is segít növelni az API megbízhatóságát azáltal, hogy az összes szükséges adatot, hogy a hívás, ahelyett, hogy támaszkodva egy sor hívások server state létrehozni egy objektumot, ami azt eredményezheti, részleges sikertelen. Ehelyett, annak érdekében, hogy csökkentse a memória követelményeit, és tartsa az alkalmazást a lehető skálázható, RESTful API megköveteli, hogy minden állam tárolja az ügyfél—nem a szerveren.

gyorsítótár

mivel egy hontalan API nagy mennyiségű bejövő és kimenő hívás kezelésével növelheti a kérések felső értékét, a REST API-t úgy kell megtervezni, hogy ösztönözze a gyorsítótárazható adatok tárolását., Ez azt jelenti, hogy amikor az adatok gyorsítótárazhatók, a Válasznak azt kell jeleznie, hogy az adatok egy bizonyos ideig tárolhatók (lejár-at), vagy olyan esetekben, amikor az adatoknak valós időben kell lenniük, hogy a válasz nem tárolható az ügyfél által. Ennek a kritikus kényszernek az engedélyezésével nem csak jelentősen csökkenti az API-val való interakciók számát, csökkenti a belső szerverhasználatot, hanem biztosítja az API-felhasználók számára a lehető leggyorsabb és leghatékonyabb alkalmazások biztosításához szükséges eszközöket. Ne feledje, hogy a gyorsítótár az ügyfél oldalán történik., Bár előfordulhat, hogy az architektúrán belül bizonyos adatokat gyorsítótárazhat az általános teljesítmény érdekében, a cél az, hogy utasítsa az ügyfelet arról, hogyan kell eljárni, valamint arról, hogy az ügyfél ideiglenesen tárolhatja-e az adatokat.

Uniform Interface

a kliens szerverről való leválasztásának kulcsa egységes felülettel rendelkezik, amely lehetővé teszi az alkalmazás független fejlődését anélkül, hogy az alkalmazás szolgáltatásai, modelljei vagy műveletei szorosan kapcsolódnának az API réteghez., Az egységes felület lehetővé teszi, hogy az ügyfél egyetlen nyelven beszéljen a szerverrel, függetlenül bármelyik építészeti háttérétől. Ennek az interfésznek változatlan, szabványosított kommunikációs eszközt kell biztosítania az ügyfél és a szerver között, mint például a HTTP használata URI erőforrásokkal, CRUD (Create, Read, Update, Delete), valamint JSON.

réteges rendszer

ahogy a neve is sugallja, a réteges rendszer rétegekből álló rendszer, minden rétegnek sajátos funkcionalitása és felelőssége van., Ha egy Modellnézetvezérlő keretrendszerre gondolunk, akkor minden rétegnek megvan a maga felelőssége, a modellek tartalmazzák az adatok keletkezésének módját, a vezérlő a beérkező műveletekre és a kimenetre összpontosít. Minden réteg különálló, de kölcsönhatásba lép a másikkal is. A REST API designban ugyanez az elv érvényes, az architektúra különböző rétegei együtt dolgoznak egy hierarchia felépítésén, amely segít egy skálázhatóbb, moduláris alkalmazás létrehozásában.,

egy réteges rendszer lehetővé teszi a régebbi rendszerek beágyazását, valamint a kevésbé általánosan elérhető funkciók áthelyezését egy megosztott közvetítőre, miközben a modernebb és általánosan használt komponenseket is védi tőlük. Továbbá, a réteges rendszer megadja a szabadságot, hogy a rendszerek ki-be az architektúra technológiák és szolgáltatások fejlődnek, növeli a rugalmasságot és a hosszú élettartam, amíg meg nem tartja a különböző modulok lazán párosul, mint lehetséges., Jelentős biztonsági előnyökkel jár a réteges rendszer, mivel lehetővé teszi a támadások leállítását a proxy rétegen vagy más rétegeken belül, megakadályozva őket abban, hogy eljussanak a tényleges szerver architektúrához. Segítségével egy réteges rendszer egy proxy, vagy hozzon létre egy hozzáférési pont, Ön képes-hoz eltartás kritikus és sebezhetőbb aspektusait az architektúra mögött egy tűzfal, megakadályozza a közvetlen interakció velük az ügyfél., Ne feledje, hogy a biztonság nem egyetlen “stop all” megoldáson alapul, hanem több rétegen, azzal a megértéssel, hogy bizonyos biztonsági ellenőrzések meghiúsulhatnak vagy megkerülhetők. Mint ilyen, annál nagyobb biztonságot tud végrehajtani a rendszerbe, annál valószínűbb, hogy megakadályozza a káros támadásokat.

igény szerinti Kód

talán a legkevésbé ismert a hat korlátozás közül, és az egyetlen opcionális kényszer, igény szerinti kód lehetővé teszi, hogy a kódokat vagy kisalkalmazásokat az API-n keresztül továbbítsák az alkalmazáson belüli használatra., Lényegében olyan intelligens alkalmazást hoz létre, amely már nem kizárólag a saját kódszerkezetétől függ. Azonban, talán azért, mert ez idő előtt, Kód on Demand küzdött elfogadása, mint a Web API-k fogyasztják több nyelven, és a kód továbbítása biztonsági kérdéseket és aggályokat vet fel. (Például a könyvtárnak írhatónak kell lennie, a tűzfalnak pedig engednie kell, hogy a tartalom általában korlátozott legyen.)

együttesen ezek a korlátok alkotják a Reprezentációs Állapotátadás vagy pihenés elméletét., Ahogy visszatekintünk ezekre, láthatjuk, hogy az egymást követő megszorítások hogyan épülnek az előző tetejére, végül létrehozva egy meglehetősen összetett, de erőteljes és rugalmas alkalmazásprogram felületet. De ami a legfontosabb, ezek a korlátok olyan kialakítást alkotnak, amely hasonlóan működik, mint a böngészőinkben a világhálón lévő oldalak elérése. Olyan API—t hoz létre, amelyet nem az architektúrája diktál, hanem a visszatérési reprezentációk, valamint egy API, amely—bár építészetileg hontalan-a reprezentációra támaszkodik az alkalmazás állapotának diktálására.,

a REST API tervezésével kapcsolatos további információkért nézze meg az eBook zavartalan pihenését: útmutató a tökéletes API tervezéséhez.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük