Úvod do jarných dát REST

1. Prehľad

Tento článok vysvetlí základy jarných dát REST a ukáže, ako ich použiť na zostavenie jednoduchého REST API.

Vo všeobecnosti je Spring Data REST postavený na vrchole projektu Spring Data a uľahčuje vytváranie hypermediálnych webových služieb REST, ktoré sa pripájajú k úložiskám Spring Data - všetky používajú HAL ako hnací typ hypermédií.

Zbavuje vás to mnohých manuálnych prác, ktoré sú zvyčajne spojené s takýmito úlohami, a veľmi uľahčuje implementáciu základných funkcií CRUD pre webové aplikácie.

2. Maven závislosti

Pre našu jednoduchú aplikáciu sú potrebné nasledujúce závislosti Maven:

 org.springframework.boot štartovací modul na jar-boot org.springframework.boot

Pre tento príklad sme sa rozhodli použiť Spring Boot, ale klasický Spring bude tiež fungovať dobre. Tiež sme sa rozhodli použiť vloženú databázu H2, aby sme sa vyhli akémukoľvek ďalšiemu nastavovaniu, ale príklad je možné použiť na akúkoľvek databázu.

3. Spísanie žiadosti

Začneme tým, že napíšeme doménový objekt, ktorý bude zastupovať používateľa našej webovej stránky:

@Entity verejná trieda WebsiteUser {@Id @GeneratedValue (strategy = GenerationType.AUTO) súkromné ​​dlhé ID; súkromné ​​meno reťazca; súkromný reťazcový e-mail; // štandardné getre a setre}

Každý používateľ má svoje meno a e-mail, ako aj automaticky generované ID. Teraz môžeme napísať jednoduché úložisko:

@RepositoryRestResource (collectionResourceRel = "users", path = "users") verejné rozhranie UserRepository rozširuje PagingAndSortingRepository {List findByName (@Param ("name") názov reťazca); }

Toto je rozhranie, ktoré vám umožňuje vykonávať rôzne operácie s programom Užívateľ webových stránok predmety. Definovali sme tiež vlastný dopyt, ktorý poskytne zoznam používateľov na základe krstného mena.

The @RepositoryRestResource anotácia je voliteľná a používa sa na prispôsobenie koncového bodu REST. Keby sme sa to rozhodli vynechať, Spring by automaticky vytvoril koncový bod na “/ websiteUsers" namiesto "/ používateľov“.

Na záver napíšeme normu Hlavná trieda Spring Boot na inicializáciu aplikácie:

@SpringBootApplication verejná trieda SpringDataRestApplication {public static void main (String [] args) {SpringApplication.run (SpringDataRestApplication.class, args); }}

To je všetko! Teraz máme plne funkčné rozhranie REST API. Poďme sa na to pozrieť v akcii.

4. Prístup k rozhraniu REST API

Ak spustíme aplikáciu a v prehliadači prejdeme na // localhost: 8080 /, dostaneme nasledujúci JSON:

{"_links": {"users": {"href": "// localhost: 8080 / users {? page, size, sort}", "templated": true}, "profile": {"href": " // localhost: 8080 / profil "}}}

Ako vidíte, existuje „/ používateľov„Koncový bod k dispozícii a už má„? stránku“, “? veľkosť“A„? triediť" možnosti.

Existuje aj štandard „/ profil”Koncový bod, ktorý poskytuje metaúdaje aplikácie. Je dôležité poznamenať, že odpoveď je štruktúrovaná spôsobom, ktorý sleduje obmedzenia štýlu architektúry REST. Konkrétne poskytuje jednotné rozhranie a samy popisné správy. To znamená, že každá správa obsahuje dostatok informácií na opísanie spôsobu jej spracovania.

V našej aplikácii zatiaľ nie sú žiadni používatelia, takže prechod na // localhost: 8080 / users by zobrazil iba prázdny zoznam používateľov. Na pridanie používateľa použijeme zvlnenie.

$ curl -i -X ​​POST -H "Content-Type: application / json" -d '{"name": "Test", \ "email": "[chránený e-mailom]"}' // localhost: 8080 / používateľov {"name": "test", "email": "[email protected]", "_links": {"self": {"href": "// localhost: 8080 / users / 1"}, "websiteUser" : {"href": "// localhost: 8080 / users / 1"}}}

Pozrime sa tiež na hlavičky odpovedí:

Vytvorený server HTTP / 1.1 201: Apache-Coyote / 1.1 Umiestnenie: // localhost: 8080 / users / 1 Typ obsahu: application / hal + json; charset = UTF-8 Transfer-Encoding: chunked

Všimnete si, že vrátený typ obsahu je „application / hal + json„. HAL je jednoduchý formát, ktorý poskytuje konzistentný a ľahký spôsob hypertextového odkazu medzi zdrojmi v rozhraní API. Hlavička tiež automaticky obsahuje Poloha hlavička, čo je adresa, pomocou ktorej môžeme získať prístup k novovytvorenému používateľovi.

Teraz môžeme k tomuto používateľovi pristupovať na adrese // localhost: 8080 / users / 1

{"name": "test", "email": "[email protected]", "_links": {"self": {"href": "// localhost: 8080 / users / 1"}, "websiteUser" : {"href": "// localhost: 8080 / users / 1"}}}

Na vydanie požiadaviek PUT, PATCH a DELETE môžete tiež použiť zvlnenie alebo iného klienta REST. Je tiež dôležité poznamenať, že Spring Data REST sa automaticky riadi princípmi HATEOAS. HATEOAS je jedným z obmedzení štýlu architektúry REST a znamená to, že na nájdenie cesty cez API by sa mal použiť hypertext.

Nakoniec sa pokúsime získať prístup k vlastnému dotazu, ktorý sme napísali skôr, a nájdime všetkých používateľov s názvom „test“. To sa deje tak, že prejdete na // localhost: 8080 / users / search / findByName? Name = test

{"_embedded": {"users": [{"name": "test", "email": "[chránený e-mailom]", "_links": {"self": {"href": "// localhost: 8080 / users / 1 "}," websiteUser ": {" href ":" // localhost: 8080 / users / 1 "}}}]}," _links ": {" self ": {" href ":" / / localhost: 8080 / users / search / findByName? name = test "}}}

5. Záver

Tento tutoriál demonštroval základy vytvárania jednoduchého rozhrania REST API s Spring Data REST. Príklad použitý v tomto článku nájdete v prepojenom projekte GitHub.


$config[zx-auto] not found$config[zx-overlay] not found