Bevezetés a Spring Data REST-be

1. Áttekintés

Ez a cikk elmagyarázza a Spring Data REST alapjait, és bemutatja, hogyan lehet felhasználni egy egyszerű REST API felépítésére.

Általánosságban elmondható, hogy a Spring Data REST a Spring Data projekt tetejére épül, és megkönnyíti azoknak a hipermédia-vezérelt REST webszolgáltatásoknak a felépítését, amelyek kapcsolódnak a Spring Data adattáraihoz - mindezt a HAL-t használva a hajtó hipermédia típusaként.

Nagyon sok kézi munkát igényel, amelyek általában ilyen feladatokhoz kapcsolódnak, és a webalkalmazások alapvető CRUD-funkcióinak megvalósítását meglehetősen egyszerűvé teszi.

2. Maven-függőségek

A következő Maven-függőségek szükségesek egyszerű alkalmazásunkhoz:

 org.springframework.boot spring-boot-starter org.springframework.boot

Úgy döntöttünk, hogy a Spring Boot alkalmazást használjuk erre a példára, de a klasszikus Spring is jól fog működni. A további beállítások elkerülése érdekében a H2 beágyazott adatbázis használatát is választottuk, de a példa bármelyik adatbázisra alkalmazható.

3. Az alkalmazás megírása

Először egy domain objektumot írunk, amely képviseli a weboldalunk felhasználóját:

@Entity public class WebsiteUser {@Id @GeneratedValue (strategy = GenerationType.AUTO) private long id; privát karakterlánc neve; privát karakterlánc e-mail; // szabványos mérőeszközök és beállítók}

Minden felhasználónak van neve és e-mail címe, valamint automatikusan létrehozott azonosítója. Most írhatunk egy egyszerű adattárat:

@RepositoryRestResource (collectionResourceRel = "users", path = "users") nyilvános felület A UserRepository kiterjeszti a PagingAndSortingRepository {List findByName (@Param ("name") karakterlánc nevét); }

Ez egy olyan felület, amely lehetővé teszi különféle műveletek végrehajtását WebsiteUser tárgyakat. Meghatároztunk egy egyéni lekérdezést is, amely a felhasználók listáját adja meg egy adott név alapján.

A @RepositoryRestResource a kommentár nem kötelező, és a REST végpont testreszabására szolgál. Ha úgy döntünk, hogy kihagyjuk, a Spring automatikusan létrehoz egy végpontot a/ websiteUsers" ahelyett "/ felhasználók“.

Végül írunk egy szabványt Spring Boot főosztály az alkalmazás inicializálásához:

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

Ez az! Most egy teljesen működő REST API-val rendelkezünk. Nézzük meg működés közben.

4. Hozzáférés a REST API-hoz

Ha futtatjuk az alkalmazást, és a böngészőben a // localhost: 8080 / webhelyre megyünk, a következő JSON-t kapjuk:

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

Amint láthatja, van egy „/ felhasználók”Végpont elérhető, és már rendelkezik a„? oldalt“, “?méret”És„?fajta" opciók.

Van egy szabványos „/profil”Végpont, amely az alkalmazás metaadatait biztosítja. Fontos megjegyezni, hogy a válasz felépítése a REST architektúra stílusának korlátait követi. Pontosabban egységes felületet és önleíró üzeneteket biztosít. Ez azt jelenti, hogy minden üzenet elegendő információt tartalmaz az üzenet feldolgozásának leírására.

Az alkalmazásunkban még nincsenek felhasználók, ezért a // localhost: 8080 / users oldalra lépve csak egy üres felhasználói listát mutatna. Használjunk curl-t egy felhasználó hozzáadásához.

$ curl -i -X ​​POST -H "Content-Type: application / json" -d '{"name": "Test", \ "email": "[email protected]"}' // localhost: 8080 / users {"name": "test", "email": "[email protected]", "_links": {"self": {"href": "// localhost: 8080 / users / 1"}, "websiteUser" : {"href": "// localhost: 8080 / users / 1"}}}

Vessünk egy pillantást a válasz fejlécére is:

HTTP / 1.1 201 Létrehozott kiszolgáló: Apache-Coyote / 1.1 Hely: // localhost: 8080 / users / 1 Tartalom típusa: application / hal + json; charset = UTF-8 Transfer-Encoding: darabos

Észre fogja venni, hogy a visszaküldött tartalom típusa „alkalmazás / hal + json“. A HAL egy egyszerű formátum, amely következetes és egyszerű módot kínál az API erőforrásai közötti hiperhivatkozásra. A fejléc automatikusan tartalmazza a Elhelyezkedés fejléc, amely címet használhatjuk az újonnan létrehozott felhasználó eléréséhez.

Ezt a felhasználót most a // localhost: 8080 / users / 1 címen érhetjük el

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

Használhatja a curl vagy bármely más REST klienst PUT, PATCH és DELETE kérések kiadására is. Fontos megjegyezni azt is, hogy a Spring Data REST automatikusan követi a HATEOAS alapelveit. A HATEOAS a REST architektúra stílusának egyik korlátja, és ez azt jelenti, hogy hipertextet kell használni az API-n való eligazodáshoz.

Végül próbáljuk elérni a korábban írt egyéni lekérdezést, és megtaláljuk az összes olyan felhasználót, aki a „teszt” nevet viseli. Ez a // localhost: 8080 / users / search / findByName? Name = test oldalra megy

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

5. Következtetés

Ez az oktatóanyag bemutatja az egyszerű REST API Spring Data REST használatával történő létrehozásának alapjait. Az ebben a cikkben használt példa megtalálható a kapcsolt GitHub projektben.


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