Programování

RESTful – Rychlý průvodce pro začátečníky

30. října 2021

Pokud si přejete postavit aplikační programové rozhraní (API) pro webové aplikace se používá RESTful. Co je aplikační programové rozhraní (API)? Aplikační programové rozhraní je prostředníkem mezi libovolnými dvěma softwarovými aplikacemi. Umožňuje dvěma softwarovým aplikacím vzájemně bezpečně a bezpečně komunikovat. Mezi typické aplikace API v každodenním životě patří používání Facebooku, používání chatovacích aplikací nebo používání aplikace pro předpověď počasí na mobilním telefonu.

Podívejme se na jeden přímý příklad, abychom pochopili, co přesně API je? Vezměme si příklad restaurace. Jdeme do restaurace a jíme jídlo dle našeho výběru. Co děláme je, že sledujeme jídelní lístek a říkáme číšníkovi o vámi vybraných položkách z jídelního lístku. Číšník pak informuje o vaší objednávce oddělení kuchyně a vaše jídlo bude připraveno. Jakmile je jídlo hotové, číšník vám ho naservíruje u vašeho stolu. Zde je číšník rozhraním mezi vámi a oddělením kuchyně. Totéž se děje, když dva systémy komunikují.

Rozhraní aplikačního programu (API) je rozděleno do čtyř primárních typů, OpenAPI, Partner API, Interní API a Composite API. K rozhraním OepnAPI je povolen přístup všem, protože jsou veřejně dostupná. V Partner API potřebuje konkrétní uživatel příslušné právo k přístupu, protože nejsou vyvinuta pro veřejné použití. Interní API jsou speciálně navržena pro interní použití společnosti. A konečně, kompozitní API se obecně používají pro urychlení operací a výkonu společnosti.

Dalším typem rozhraní API jsou rozhraní API webových služeb. Existují čtyři primární rozhraní API webových služeb, SOAP, XML-RPC, JSON-RPC a REST. SOAP znamená a Simple Object Access Protocol , který přenáší data pomocí formátu XML. SOAP API zahrnuje použití Jazyk definice webových služeb (WSDL) pro definování jeho rozhraní. Další API webové služby je XML-RPC . Jak jeho název napovídá, pro sdílení dat používal XML formulář. XML-RPC API je jednodušší a dostupnější než SOAP API.

Další API webové služby je JSON-RPC . Je to stejné API jako XML, ale pro sdílení dat používá formát JSON. A konečně, REST API se liší od všech výše uvedených tří. Je to soubor architektonických norem. REST API se také nazývá RESTful API. Je to jedno z běžně používaných rozhraní API webových služeb, protože vyžaduje výjimečně menší šířku pásma.

V tomto článku uvidíme rychlého průvodce webovou službou RESTful. Tento příspěvek vám pomůže dozvědět se vše o webové službě RESTful. Koncepty webových služeb RESTful jsme vysvětlili přímočařeji na jednoduchých příkladech. Než začnete, nezapomeňte na jednu věc porozumět ODPOČINU API je, že musíte mít lepší znalosti programovacího jazyka Java, HTML, CSS, AJAX a textového editoru, protože RESTful je webová služba pro vývoj webových aplikací. Začněme tedy s výukovým programem RESTful API.

Obsah

Co je RESTful Web Service API?

Než budeme vědět, co je RESTful API, budeme vědět, co to vlastně webová služba je. A webová služba je soubor standardů nebo principů požadovaných pro sdílení nebo výměnu dat mezi systémy. Dnes na našich mobilních telefonech a stolních počítačích používáme více aplikací. Tyto aplikace jsou napsány v mnoha programovacích jazycích a přesto fungují na různých operačních systémech. Webová služba umožňuje přístup k určité softwarové aplikaci v různých operačních systémech.

RESTful API je rozhraní API webové služby. Zahrnuje soubor architektonických standardů a využívá protokol HTTP pro přístup a používání konkrétních dat. REST znamená Převod reprezentativního státu . V RESTful API je každá zapojená komponenta považována za zdroj. K těmto zdrojům můžete přistupovat pomocí HTTP protokol metody.

Do RESTful API je zapojen server a klient. Klienti REST API mohou přistupovat ke zdrojům poskytovaným serverem a manipulovat s nimi. Každý zdroj má samostatné URI nebo globální ID. Pomocí URI nebo globálního ID můžeme identifikovat zdroje v RESTful API. URI znamená a Jednotný identifikátor zdroje . Pro reprezentaci prostředků můžete v REST API použít formáty text, XML.JSON nebo JSON.

Webovou službu RESTful obvykle používají spotřebitelé cloudu a umožňují jim přístup k webovým službám a jejich správu. REST API slouží jako jedna z nejžádanějších možností pro vytvoření robustního API. Rozhraní API vytvořené pomocí architektury REST umožňuje uživatelům ovladatelnou interakci s cloudovými službami. Některé z oblíbených webových stránek, které používají webovou službu RESTful k vytváření svých rozhraní API, jsou Webové služby Amazon (AWS), Twitter, LinkedIn a Google.

Fungování rozhraní RESTful Web Service API

Pozorovali jsme stručný popis webové služby RESTful. Nyní nám dejte vědět, jak funguje RESTful API. RESTful API rozděluje každou jednotlivou transakci mezi dvěma aplikacemi do několika menších modulů. Transakce zde znamená výměnu dat nebo informací. Každý modul obsahuje základní informace o transakci. Proto se vývojáři cítí pohodlně a flexibilně při vytváření API pro jakoukoli webovou aplikaci.

Dnes mnoho společností, jako je Cloud Data Management Interface (CDMI), AmazonS3 atd., nabízí své konkrétní modely pro vývoj API. Webová služba RESTful API obsahuje mnoho příkazů pro přístup ke zdrojům. Reprezentace zdroje definuje stav konkrétního zdroje v daném časovém razítku.

Metody HTTP v rozhraní API webové služby RESTful

Rozhraní API webové služby RESTful používá protokol HTTP pro přístup ke zdrojům a manipulaci se zdroji. Ve webové službě RESTful se používají čtyři primární metody HTTP, GET, PUT, POST, DELETE. Pojďme se krátce seznámit s každou z těchto metod HTTP.

    DOSTAT:Metoda GET umožňuje uživatelům přístup ke zdrojům RESTful API. Nelze je však měnit ani manipulovat. Pomocí metody GET můžete zdroje pouze číst.DÁT:Metoda HTTP PUT umožňuje upravovat prostředky nebo měnit jejich stavy. Umožňuje vám také vytvořit další nový zdroj.POŠTA:Pro vytvoření nového zdroje můžete použít metodu POST.VYMAZAT:Pro smazání zdroje se používá metoda HTTP DELETE.

API webové služby RESTful podporuje několik datových formátů, jako je application/xml, application/json, application/x-www-form-urlencoded, application.x-web+xml a multipart/form-data.

Vlastnosti a omezení architektury RESTful API

Dr. Roy Fielding je vývojář rozhraní API webové služby RESTful. Níže jsou uvedeny některé významné vlastnosti a omezení architektury RESTful API.

Vlastnosti RESTful API

  1. RESTful API nabízí koncovým uživatelům vysoký výkon. Když uživatel klikne na jakýkoli odkaz, zobrazí se mu okamžité výsledky. A vývojáři poskytují uživatelům všechny služby.
  2. Další vlastností RESTful API je škálovatelnost. RESTful API poskytuje služby pravidelně i přes nárůst nebo pokles uživatelů.
  3. RESTful API má jednotné rozhraní. Všechny zdroje jsou identifikovány pomocí příslušných URI. Díky tomuto jednotnému rozhraní je RESTful API jednoduché.
  4. Další vlastností je modifikovatelnost. Jakákoli změna v systému by měla proběhnout snadno a pohodlně.
  5. Architektura RESTful API je vysoce přenosná a spolehlivá.

Architektonická omezení RESTful API

Pro jakékoli API webové služby RESTful musí platit níže uvedených šest architektonických podmínek.

  1. Prvním architektonickým omezením pro rozhraní API webové služby RESTful je, že by mělo používat jednotné rozhraní. Všechny prostředky RESTful API by měly být identifikovány pomocí příslušných identifikátorů URI (Uniform Resource Identifier). Musí být přístupné a manipulované pouze prostřednictvím čtyř metod HTTP, PUT, POST, GET a DELETE.
  2. Klient a server v RESTful API by měli mít přesnou reprezentaci. Klient se stará o jednotné rozhraní a shromažďování požadavků. Na druhou stranu server reguluje zabezpečení, přístup k datům a správu zátěže. Server drží všechny prostředky a klient požaduje prostředky ze serveru.
  3. Dalším architektonickým omezením pro rozhraní API webové služby RESTful jsou bezstavové operace. Klient a server v RESTful API by měli dodržovat bezstavové funkce. Všechny operace státní správy by měly být prováděny na straně klienta.
  4. Všechna rozhraní API webové služby RESTful by měla provádět ukládání do mezipaměti. Pokud je uvedeno, že ukládání do mezipaměti není možné, pak by se nemělo provádět pouze ukládání do mezipaměti.
  5. Architektura konkrétní aplikace by měla obsahovat server na více vrstvách. Jedna vrstva by neměla obsahovat žádné informace týkající se ostatních vrstev, kromě její bezprostřední vrstvy.
  6. Obecně platí, že server odesílá statické reprezentace zdrojů klientovi ve formátu XML nebo JSON. V případě potřeby by měl také přenést spustitelný kód klientovi.

V dalším segmentu se naučíme generovat webovou službu pomocí HTTP metod. Pro vytvoření správy uživatelů použijeme dvě metody HTTP, GET a POST. Níže jsou uvedeny některé základní použité funkce:

  1. Pomocí metody HTTP GET s prázdným tělem POST zobrazíme seznam obsahující uživatelská jména. Berte jednotný identifikátor zdroje jako /Uživatel/Služba/uživatelé .
  2. Později přidáme podrobnosti o každém uživateli do seznamu. Pro tento účel použijeme metodu HTTP POST s JSON String v těle POST. Použijte URI jako /User/Service/addUser .
  3. Nakonec zobrazíme podrobnosti o jednotlivých uživatelích pomocí metody HTTP GET. Ponechte tělo POST prázdné a použijte URI jako /User/Service/getUser/:id .

Nastavení prostředí pro webové služby RESTful

Pro práci s webovou službou RESTful budeme používat Jersey Framework . Tento framework implementuje standardní specifikaci nazvanou JAX-RS 2.0 API. Pomocí této specifikace můžeme generovat webové služby RESTful. Než přejdeme k Jersey Framework, naučíme se nastavit prostředí Eclipse, Tomcat a JDK na vašem počítačovém systému. Vysvětlili jsme nastavení všech tří prostředí v systému pomocí přesných a přímočarých kroků.

Jak nastavit Java Development Kit (JDK)?

The Java Development Kit (JDK) je jedním ze základních balíčků používaných pro spouštění kódu Java. Balíček JDK v Javě umožňuje uživatelům psát Java programy. Z tohoto si musíte stáhnout tento balíček s názvem JavaSE webová stránka :

Po stažení jej nainstalujte podle poskytnutých pokynů. Po dokončení musíte opravit proměnné prostředí PATH a JAVA_HOME na místo, kde jsou přítomny ‚java‘ a ‚javac‘. Obecně je 'java' přítomná v java_install_dir/bin a 'javac' je přítomná v 'java_install_dir.'

Chcete-li opravit proměnné prostředí PATH a JAVA_HOME na systémech Windows XP, NT nebo 2000, přejděte na „Tento počítač, klikněte na něj pravým tlačítkem myši a klikněte na „Vlastnosti“. Všimnete si záložky „Upřesnit“. Klikněte na ni a později klikněte na „Proměnné prostředí.“ Změňte proměnné prostředí PATH a JAVA_HOME na umístění „java“ a „javac“ v systému a klikněte na tlačítko „OK“. Nastavení proměnné prostředí je hotovo.

U systémů Linux a Solaris postupujte podle níže uvedených kroků. Zvažte, že používáte prostředí C a stáhli jste soubor JavaSE do umístění /usr/local/jdk1.7.9_75. Aktualizujte soubor „.cshrc“ pomocí níže uvedených příkazů:

|_+_|

Jak nastavit Eclipse IDE?

První věc, kterou musíte dodržovat, je stáhnout si nejnovější binární soubory Eclipse z jeho oficiálního webu webová stránka .

Po stažení nejnovějších binárních souborů Eclipse je umístěte na správné místo ve vašem systému. Uvažujme, že jsme umístili binární soubory Eclipse na systémech Windows v C:eclipse. Binární soubory Eclipse najdeme v umístění /usr/local/eclipse pro systém Linux nebo Unix. Poté, co ji umístíte na správné místo, opravte proměnnou PATH na místo, kde jste uložili binární soubory Eclipse.

Chcete-li spustit Eclipse, dvakrát klikněte na soubor eclipse.exe nebo můžete zadat níže uvedený příkaz do příkazového řádku Windows.

|_+_|

Pokud používáte Eclipse v systému Linux nebo Solaris, použijte ke spuštění níže uvedený příkaz.

|_+_|

Pokud vše proběhne v pořádku a nastavení je správné, spustí se aplikace a objeví se obrazovka pro zapsání kódu.

Jak nastavit Apache Tomcat?

Zde pochopíme, jak nainstalovat a nastavit prostředí vašeho systému pro Apache Tomcat. Nejprve si musíte stáhnout nejnovější verzi Tomcat webová stránka .

Po stažení této nejnovější verze Tomcat ji umístěte na vhodné místo ve vašem systému.

Uvažujme, že jsme umístili soubor Tomcat Apache do systému Windows na umístění C:apache-tomcat-7.0.59. Soubor Tomcat Apache umístíme do umístění /usr/local/apache-tomcat-7.0.59 na Linux nebo systém Solaris. Poté musíte opravit proměnnou prostředí CATALINA_HOME na místo, kde jste uložili stažený soubor Tomcat Apache.

Aplikaci Tomcat můžete v systému Windows spustit kliknutím na soubor startup.bat. Pro spuštění aplikace Tomcat můžete také použít následující příkaz.

|_+_|

nebo

|_+_|

Pokud používáte aplikaci Tomcat v systému Linux nebo Solaris, musíte pro její spuštění postupovat podle některého z níže uvedených příkazů.

|_+_|

nebo

|_+_|

Když je vše v pořádku, objeví se obrazovka, kde můžete napsat kód a spustit jej. Všechny výchozí aplikace s Tomcatem budou k dispozici níže webová stránka :

Kompletní informace o konfiguraci Tomcat a spuštěných programech na něm jsou k dispozici na webová stránka .

Pokud si přejete zastavit aplikaci Tomcat v systému Windows, zadejte některý z následujících příkazů.

|_+_|

nebo

|_+_|

Pro vypnutí aplikace Tomcat můžete zadat kterýkoli ze dvou níže uvedených příkazů.

|_+_|

nebo

|_+_|

Jak nastavit knihovny Jersey Framework?

Po nastavení JDK, Eclipse a Tomcat Apache nyní můžete přejít k nastavení Jersey Framework. Postupujte podle níže uvedených pokynů a stáhněte si Jersey Framework.

  1. Nejprve se musíte rozhodnout pro operační systém, jako je Windows nebo Unix, na který chcete nainstalovat Jersey Framework. Pokud zvolíte systém Windows, stáhněte si soubor .zip a pro systémy Unix si stáhněte soubor .tz.
  2. Dalším krokem je stažení nejnovějších binárních souborů Jersey Framework z níže webová stránka .
  3. Po stažení souboru .zip do systému Windows jej musíte rozbalit. Předpokládejme, že jste si stáhli soubor jaxrs-ri-2.17.zip. Po rozbalení tohoto souboru poskytuje adresářovou strukturu v umístění E:jaxrs-ri-2.17jaxrs-ri.
  4. Všechny knihovny Jersey budou v adresáři C:jaxrs-ri-2.17jaxrs-rilib a závislosti budou v adresáři C:jaxrs-ri-2.17jaxrs-riext.
  5. Později opravte proměnnou CLASSPATH na místo, kde jsou vaše knihovny Jersey, adresář C:jaxrs-ri-2.17jaxrs-rilib. Pamatujte, že pokud používáte aplikaci Eclipse, není potřeba opravovat proměnnou CLASSPATH pro Jersey Framework.

Nyní víte, jak nastavit prostředí pro webovou službu RESTful. Postupujte podle všech výše uvedených kroků a budete připraveni napsat příklad Jersey.

První příklad RESTful – Jersey (JAX-RS)

Po nastavení prostředí Java, Tomcat Apache, Eclipse a Jersey Framework můžete začít vytvářet webové aplikace pomocí RESTful API. Podívejme se na jeden příklad v Jersey Framework, abychom získali přesnou představu o psaní programu v RESTful API. Chcete-li program úspěšně spustit, musíte postupovat podle následujících kroků uvedených postupně.

Krok 1: Vytvořte projekt Java

Vytvořte projekt Java pomocí Eclipse IDE. Zde vytvoříme dynamický webový projekt. Níže jsou uvedeny kroky k rozvíjet dynamický web Projekt v IDE Eclipse.

  1. Spusťte aplikaci Eclipse z vašeho systému. Klikněte na možnost Soubor, klikněte na Nový a vyberte Nový projekt.
  2. Později vyberte ze seznamu průvodce průvodce Dynamic Web Project.
  3. Po výběru průvodce zadejte požadovaný název projektu, řekněme FirstRestExample .
  4. Když uložíte název projektu v okně průvodce, přejděte do Průzkumníka projektu a tam si všimnete názvu svého projektu.

Krok 2: Přidejte potřebné knihovny

Po vytvoření projektu a jeho uložení pod konkrétním názvem musíte do projektu přidat knihovny a závislosti Jersey Framewoek. Názvy souborů jar, které se mají zkopírovat, jsme uvedli v adresáři WEB-INF/lib vytvořeného projektu ze složky zip dresu.

  • jaxrs-ri-2.17jaxrs-riapi
  • jaxrs-ri-2.17jaxrs-riext
  • jaxrs-ri-2.17jaxrs-rilib

Chcete-li přidat výše uvedené soubory jar do svého projektu, klikněte pravým tlačítkem myši na svůj projekt, FirstRestExample . Klikněte na možnost Build Path a poté přejděte na Configure Build Path. Zde uvidíte okno zobrazující cestu Java Build Path. Kromě toho uvidíte tlačítko Přidat JAR v nabídce Knihovny. Přidejte soubory jar do adresáře WEB-INF/lib.

Krok 3: Vytvořte zdrojové soubory

Náš projekt s názvem FirstRestExample jsme vytvořili v IDE Eclipse. Nyní musíme vytvořit zdrojové soubory pro tento projekt. Pro vytvoření zdrojových souborů potřebujeme nejprve vytvořit balíček, řekněme com.restexample. Přejděte do průzkumníka balíčků a klikněte pravým tlačítkem na možnost src. Najdete možnost Nový. Klikněte na něj a později klikněte na možnost Balíček.

Zde musíte vytvořit tři různé soubory v rámci balíčku com.restexample. Pojmenujme soubory jako EmployeeService.java, Employee.java a EmployeeDao.java. Ve třech souborech, které jste vytvořili v rámci balíčku com.restexmaple, musíte napsat kód. Nejprve zapíšeme kód do souboru Employee.java.

Employee.java

|_+_|

EmployeeDao.java

|_+_|

EmployeeService.java

|_+_|

Ve výše uvedeném souboru EmployeeService.java si musíte pamatovat, že jsme pro specifikaci cesty pro webovou službu použili anotaci @Path. Kromě toho jsme také vytvořili cestu pro konkrétní metodu webové služby pomocí anotace @Path.

Krok 4: Vytvořte soubor Web.xml

Nakonec musíme vytvořit soubor Web.xml. Primárním cílem souboru Web.xml je přiřadit servlet Jersey Framework pro vyvíjenou aplikaci.

web.xml

|_+_|

Krok 5: Zkompilujte a spusťte program

Po napsání všech výše uvedených čtyř souborů jste nyní připraveni zkompilovat a spustit program. Pro psaní všech výše uvedených programů jsme použili Eclipse IDE. Proto potřebujeme exportovat výše uvedenou aplikaci do válečného souboru. Později musíme tento válečný soubor zkompilovat a spustit v nástroji Tomcat Apache.

Níže si ukážeme, jak vytvořit válečný soubor v Eclipse IDE.

  • V Eclipse IDE přejděte na možnost Soubor, klikněte na Export -> We -> War File. Tam si musíte vybrat svůj projekt FirstRestExample a cílovou složku.
  • Později budete muset najít soubor FirstRestExample.war v Instalační adresář Tomcat možnosti adresář webových aplikací . A spusťte aplikaci Tomcat.

Po umístění souboru war do adresáře webových aplikací Tomcat můžete spustit aplikaci. Budeme používat rozšíření Chrome, Listonoš , pro testování našich aplikací. Dalším krokem je umístění všech zaměstnanců do POŠTAČKY. Pro tento účel použijte níže uvedený řádek kódu

|_+_|

Pro použití výše uvedeného řádku kódu v Tomcat Apache použijte metodu HTTP GET. Zde je připravena vaše první aplikace webové služby.

Zprávy v RESTful Web Service API

V RESTful API spolu klient a server komunikují pomocí protokolu HTTP. Ke komunikaci dochází, když klient odešle požadavek HTTP na server a server odpoví klientovi HTTP odpovědí. Komunikace mezi klientem a serverem pomocí protokolu HTTP se nazývá Messaging. Jedna zpráva HTTP obsahuje data zprávy a metadata. Metadata jsou informace o zprávě.

Nyní se podívejme na požadavek HTTP a odezvu HTTP v rozhraní API webové služby RESTful.

HTTP požadavek

Klient přesměruje požadavek HTTP na server. Vyžaduje zdroje ze serveru. Požadavek HTTP obsahuje pět primárních částí, sloveso, URI, verzi HTTP, záhlaví požadavku a tělo požadavku. Následuje formát požadavku HTTP.

Klidný

Pojďme si stručně popsat každou část požadavku HTTP.

    Sloveso:Sloveso v požadavku HTTP zahrnuje čtyři metody HTTP, GET, POST, PUT a DELETE.Uniform Resource Identifier (URI):Další částí požadavku HTTP je Uniform Request Identifier (URI). Identifikátor URI identifikuje každý zdroj jedinečně.Verze HTTP:Třetí částí požadavku HTTP je verze HTTP. Například HTTP v1.1, kde v1.1 je verze.Záhlaví požadavku:Záhlaví požadavku obsahuje metadata zprávy. Metadata v záhlaví požadavku jsou přítomna v páru klíč–hodnota. Může shromažďovat informace, jako je typ klienta, nastavení mezipaměti, formát zprávy atd.Tělo požadavku:Tělo požadavku v požadavku HTTP znamená reprezentaci zdroje.

HTTP odpověď

Když server obdrží od klienta požadavek HTTP, odpoví klientovi odpovědí HTTP. Odpověď HTTP zahrnuje čtyři důležité části, kód odpovědi, verzi HTTP, hlavičku odpovědi a tělo odpovědi. Níže je uveden formát odpovědi HTTP.

img 617dd1cb36593

Pojďme si zde probrat každou část odpovědi HTTP.

    Kód odpovědi:

Kód odezvy se také nazývá stav. Když klient požádá o zdroj ze serveru, kód odezvy zobrazí jeho stav. Pokud je stav 404, zdroj nebyl nalezen. Pokud je odpověď v pořádku, stav je 200.

    Verze HTTP:

Druhá část odpovědi HTTP je verze HTTP. Například HTTP v1.1, kde v1.1 je verze.

    Záhlaví odpovědi:

Záhlaví obsahuje metadata zprávy HTTP Response ve formě páru klíč–hodnota. Může obsahovat informace, jako je typ serveru, délka obsahu, data odezvy atd.

    Tělo odpovědi:

Response Body zahrnuje reprezentaci zdroje.

Do výše uvedeného příkladu rozhraní API webové služby RESTful jsme vložili http://localhost:8080/FirstRestExample/rest/EmployeeService/employees .

V POSTMAN pomocí metody HTTP GET. Když je požadavek odeslán pomocí metody GET, obdržíme zprávu XML následovně. Chcete-li zobrazit odpověď XML, musíte kliknout na tlačítko Náhled.

|_+_|

Zdroj v RESTful Web Service API

V rozhraní API webové služby RESTful je každý obsah považován za zdroj. Klient požaduje zdroj a server poskytuje přístup ke konkrétnímu zdroji požadovanému klientem. Po udělení přístupu může klient upravit nebo změnit prostředek. Zdrojem mohou být stránky HTML, obrázky, textové soubory nebo obchodní data.

Pro každý prostředek v architektuře REST existuje jedinečné číslo. Toto jedinečné číslo se nazývá Uniform Resource Identifier (URI). Obecně je prostředek v architektuře REST reprezentován pomocí formátu XML nebo JSON. Podívejme se nyní na zastoupení zdrojů v architektuře REST.

Reprezentace zdrojů v architektuře REST

Prostředky v architektuře REST jsou reprezentovány ve formátech XML nebo JSON. Se zdrojem REST můžete zacházet jako s entitou v databázi nebo jako s objektem v objektově orientovaném programování. Za prvé, zdroj je identifikován pomocí jeho Uniform Resource Identifier (URI). Později se rozhodne o standardním formátu pro reprezentaci zdroje. Když klient požaduje zdroj, server předá zdroj ve formě určené klientem.

V našem výše uvedeném příkladu RESTful máme jako zdroj ‚zaměstnance‘. Podívejme se, jak je zdroj ‚zaměstnance‘ reprezentován pomocí formuláře XML.

|_+_|

Nyní znázorníme stejný zdroj „zaměstnance“ ve formě JSON.

|_+_|

V architektuře REST můžete prostředky reprezentovat v libovolném formátu. V rozhraní API webové služby RESTful existují případy, kdy jeden klient požaduje zdroj ve formuláři XML, zatímco druhý klient požaduje stejný zdroj ve formuláři JSON. Jediná důležitá věc v reprezentaci zdrojů je, že by měla být reprezentována v takovém formátu, aby jí klient rozuměl.

Když je zdroj reprezentován v jakémkoli formátu, je třeba zvážit některé předpoklady. Formát zdroje by měl být srozumitelný, úplný a propojitelný. Klient a server v architektuře REST by měli rychle rozpoznat formát reprezentace prostředků. Jakákoli forma, kterou zvolíte pro reprezentaci zdroje, by měla poskytovat úplné informace o zdroji. Formát reprezentace zdroje by měl umožňovat odkaz na jakýkoli jiný zdroj.

Většina vývojářů používá pro reprezentaci zdroje v architektuře REST formu JSON nebo XML. Dnes je k dispozici mnoho nástrojů pro úpravu dat JSON nebo XML.

Adresování v RESTful Web Service API

Adresování v architektuře REST znamená lokalizaci zdrojů, které jsou přítomny na serveru. Víme, že zdroje jsou identifikovány pomocí svých identifikátorů URI (Uniform Resource Identifier). Formát jednotného identifikátoru zdroje je následující:

:////

Identifikátor URI vyhledá konkrétní prostředek na serveru. V našem výše uvedeném příkladu je URI

|_+_|

Pro výše uvedený URI jsme použili metodu HTTP GET.

Možná vás zajímá, jak se generuje URI. Provedeme vás několika jednoduchými pravidly při vytváření URI pro jakýkoli zdroj v architektuře REST.

  1. Když definujete zdroje ve svých webových službách, vždy používejte množné číslo. Ve výše uvedeném příkladu webové aplikace RESTful jsme vytvořili zdroj „uživatelé“.
  2. Musíte se ujistit, že název zdroje by neměl obsahovat žádné mezery nebo speciální symboly, jako je %, $, @ atd. V názvu zdroje můžete použít pomlčku (-) nebo podtržítko (_). Správný název zdroje je například efektivní_zaměstnanci a nikoli efektivní@zaměstnanci.
  3. Ve webové službě RESTful se v URI nerozlišují malá a velká písmena. Vždy je však lepší ponechat URI malá písmena.
  4. Ujistěte se, že používáte jakékoli ze sloves nebo metod HTTP pro provádění operací se zdroji. Ve výše uvedené aplikaci RESTful jsme použili metodu HTTP GET.
  5. URI by mělo být zveřejněno, protože webové služby jsou veřejné služby.

Podívejme se na příklad dobrého a špatného URI pro načtení zaměstnance.

Špatné URI

|_+_|

Dobrý URI

|_+_|

Java (JAX-RS) v rozhraní RESTful Web Service API

JAX-RS implikuje Jakarta RESTful Web Services. Dříve to bylo známé jako Java API pro RESTful Web Services. JAX-RS je API založené na Javě, které uživatelům umožňuje vytvářet webové služby založené na architektuře REST. Nejnovější verze JAX-RS je 2.0, vydaná v roce 2013. Toto rozhraní API založené na Javě využívá anotace z Java SE 5, díky čemuž je vývoj a nasazení webových služeb snadnější.

Specifikace JAX-RS

Následují některé obvykle používané anotace pro mapování zdroje jako zdroje webové služby.

    @DOSTAT:Tato specifikace JAX-RS se používá pro načítání zdroje.@Cesta:@Path znamená cestu třídy nebo metody zahrnuté ve webové službě.@VYMAZAT:Prostředek @DELETE odstraní konkrétní prostředek.@POŠTA:Výše uvedená specifikace v JAX-RS vytváří nový zdroj.@DÁT:Tato specifikace JAX-RS se používá pro aktualizaci existujícího zdroje.@Spotřebuje:Specifikace @Consumes JAX-RS představuje typ požadavku HTTP.@HLAVA:Další HTTP metodou v JAX-RS je @HEAD, která nabízí informace o tom, zda je metoda dostupná či nikoli.@QueryParam:Výše uvedená specifikace se používá ke kombinaci parametru dotazu a parametru předávaného metodě.@Produkuje:Specifikace @Produces zobrazuje typ odpovědi HTTP.@PathParam:Výše uvedená specifikace JAX-RS se používá pro kombinování hodnoty cesty s parametrem předávaným metodě.@CookieParam:@CookieParam kombinuje cookie s parametrem předaným metodě.@MatrixParam:Tato specifikace JAX-RS kombinuje parametr matice HTTP s parametrem předávaným metodě.@FormParam:Hodnota formuláře je kombinována s parametrem předaným metodě pomocí @FormParam.@HeaderParam:Hlavička HTTP je svázána s parametrem předaným metodě pomocí @HeaderParam.@Kontext:@Context znamená kontext zdroje.@Výchozí hodnota:Výše uvedená specifikace JAX-RS přiřazuje parametr předaný metodě s výchozí hodnotou.

Bezstavovost a ukládání do mezipaměti RESTful Web Service API

Bezdomovectví

Bezstavový stav znamená, že stav klienta by na serveru neměl být přítomen. Klient odešle svůj kontext na server. Po obdržení kontextu od klienta server uloží kontext a použije jej pro další požadavky klienta. Klient například odešle na server identifikátor relace. Proto jej server uchovává pro identifikaci relací.

Klady:

Níže jsou uvedeny některé významné výhody bezstavového stavu v rozhraní API webové služby RESTful.

  • Pomocí vlastnosti statelessness zpracovává webová služba každý požadavek na metodu individuálně.
  • Server neuchovává stav klienta ani předchozí operace. Díky tomu je návrh aplikace mnohem jednodušší.
  • Webové služby RESTful zpracovávají virtuálně na protokolech HTTP.

Nevýhody:

  • Protože server neobsahuje stav klienta, webová služba vyžaduje více dat z každého požadavku od klienta.

Ukládání do mezipaměti

Klient drží některé prostředky ze serveru z hlediska odezvy. Klient tedy nemusí opakovaně žádat server o stejný prostředek. Tomu se říká ukládání do mezipaměti. Na základě informací o mezipaměti konkrétního zdroje nabízeného serverem se klient rozhodne, zda ukládat zdroj do mezipaměti pro konkrétní čas nebo jej nikdy neukládat do mezipaměti.

K dispozici je hlavička kontroly mezipaměti, která se skládá z pěti důležitých částí, veřejné, soukromé, maximální věk, bez mezipaměti/bez úložiště a musí znovu ověřit. Podívejme se níže na popis každé části.

    Veřejnost:Libovolná součást může ukládat do mezipaměti prostředek, který je veřejný.soukromé:Nikdo nesmí ukládat zdroj do mezipaměti. Pouze klient a server mohou prostředek uložit do mezipaměti.maximální věk:Prvek maximálního věku se počítá v sekundách. Znamená to, jak dlouhé sekundy je ukládání zdroje do mezipaměti platné. Po uplynutí doby maximálního věku musí klient znovu požádat o zdroj.no-cache/no-store:Klient nemůže prostředek uložit do mezipaměti.nutno znovu ověřit:Server musí znovu ověřit zdroj, když skončí maximální doba pro ukládání do mezipaměti.

Pro konfiguraci mezipaměti klienta zahrnuje odpověď serveru následující hlavičky:

    Datum:Datum a čas vytvoření zdroje jsou uvedeny v záhlaví Date.Kontrola mezipaměti:Hlavička řízení mezipaměti monitoruje ukládání do mezipaměti.Stáří:Věk je uveden v sekundách. Je to čas, kdy je zdroj přijat ze serveru.Naposledy změněno:Toto záhlaví zobrazuje datum a čas, kdy byl zdroj naposledy aktualizován.Platnost vyprší:Tato hlavička naznačuje datum a čas vypršení platnosti mezipaměti.

Metody HTTP a jejich operace v RESTful API

V předchozí části jsme viděli metody HTTP a jejich použití. Tento segment bude sledovat metody HTTPS, jejich operace a typ operace v architektuře REST.

    DOSTAT:

K získání seznamu zaměstnanců se používá metoda GET HTTP ve výše uvedeném příkladu aplikace RESTful. Použili jsme URI pro metodu GET, jak je uvedeno níže:

|_+_|

Metoda HTTP GET získává seznam zaměstnanců. Má tedy typ operace pouze pro čtení.

Pro získání Id 1 zaměstnance můžeme také použít metodu GET. URI pro načtení zaměstnance ID 1 je,

|_+_|

Tato operace je také typu pouze pro čtení.

    POŠTA:

V našem příkladu aplikace RESTful jsme použili metodu HTTP POST pro vložení zaměstnance s ID 2. URI pro vložení zaměstnance pro ID 2 je,

|_+_|

Výše uvedený typ operace je neidempotentní.

    VYMAZAT:

Pro smazání zaměstnance s ID 1 můžeme použít metodu HTTP DELETE. Níže je URI pro smazání zaměstnance s ID 1.

|_+_|

Operace DELETE je idempotentního typu.

    HLAVA:

Metoda HEAD v architektuře REST se používá pro vrácení HTTP hlavičky. Neposkytuje tělo HTTP. Pro náš výše uvedený příklad zaměstnance můžeme použít níže uvedený URI.

|_+_|

Tato operace je typu pouze pro čtení.

    DÁT:

Ve výše uvedené aplikaci REST Employee můžeme pro aktualizaci zaměstnance s ID 2 použít metodu HTTP PUT. Pro aktualizaci zaměstnance s ID 2 použijte níže uvedený URI.

|_+_|
    MOŽNOSTI:

Metody HTTP OPTIONS umožňují vypsat všechny operace podporované webovou službou. Pro tuto operaci můžete použít následující URI.

|_+_|

Operace OPTIONS je typu pouze pro čtení.

Z výše uvedených HTTP metod a jejich operací můžeme usoudit, že operace GET je typu pouze pro čtení. Operace DELETE a PUT jsou idempotentního typu. Výsledek těchto dvou operací zůstává stejný, i když jsou provedeny vícekrát.

Závěr

RESTful API je rozhraní API založené na architektuře REST, které používá metody HTTP pro přístup a organizaci dat. Všechna data v architektuře REST jsou považována za zdroj. Pokud se chcete naučit RESTful API, tento příspěvek je pro vás kompletním průvodcem.

Viděli jsme, co je API webové služby RESTful, jak funguje, metody HTTP používané v architektuře REST a vlastnosti a omezení architektury REST. Později jsme popsali nastavení prostředí pro RESTful API. V nastavení prostředí RESTful API jsme nastavili prostředí JDK, Tomcat Apache, Eclipse IDE a Jersey Framework. Jednoduchý příklad aplikace RESTful si můžete prohlédnout v tomto tutoriálu.

Dále jsme pokryli několik prvků v rozhraní API webové služby RESTful, jako jsou zprávy, stav bez stavu, ukládání do mezipaměti, zdroje a adresování. Diskutovali jsme také o Jáva JAX-RS a jeho specifikace. Nakonec jsme viděli metody HTTP a jejich operace s URI a typem operace.