Válasszon testet a JAX-RS-ben
1. Áttekintés
A REST webszolgáltatások és ügyfeleik Java-ban történő fejlesztésének egyszerűsítése érdekében a JAX-RS Jersey-nek hívták az API-t.
Jersey egy nyílt forráskódú keretrendszer a REST webszolgáltatások fejlesztéséhez, amelyek támogatást nyújtanak JAX-RS API-k és a JAX-RS referencia megvalósítás.
Ebben az oktatóanyagban megvizsgáljuk, hogyan állíthatjuk be a Jersey válaszadó test különböző közegtípusokkal.
2. Maven-függőségek
Először a következő függőségekre van szükségünk pom.xml fájl:
org.glassfish.jersey.bundles jaxrs-ri 2.26 org.glassfish.jersey.core mez-szerver 2.26
A legfrissebb verziója JAX-RS a jaxrs-ri címen található, és Jersey szerver megtalálható a jersey-server oldalon
3. Válasz Jersey-ben
Természetesen a válasz létrehozásának különböző módjai vannak Jersey, és az alábbiakban megvizsgáljuk, hogyan építhetjük fel őket.
Az összes példa itt HTTP GET kérés, és mi a következőt fogjuk használni becsavar parancsot az erőforrások tesztelésére.
3.1. Ok szöveges válasz
Az itt bemutatott végpont egy egyszerű példa arra, hogy az egyszerű szöveg hogyan adható vissza Jersey válaszként:
@GET @Path ("/ ok") nyilvános válasz getOkResponse () {String message = "Ez egy szöveges válasz"; return Válasz .status (Válasz.állapot.OK) .entity (üzenet) .build (); }
Használhatunk HTTP GET-et becsavar a válasz igazolásához:
göndör -XGET // localhost: 8080 / mez / válasz / ok
Ez a végpont a következőképpen küldi vissza a választ:
Ez egy szöveges válasz
Ha az adathordozó típusa nincs megadva, Jersey alapértelmezés szerint szöveg / sima.
3.2. Hiba elhárítás
A hibákat visszaküldhetjük Jersey válaszként:
@GET @Path ("/ not_ok") nyilvános válasz getNOkTextResponse () {String message = "Belső szerverhiba történt"; return Válasz .status (Válasz.állapot.INTERNAL_SERVER_ERROR) .entity (üzenet) .build (); }
A válasz ellenőrzéséhez megadhatunk egy HTTP GET kérést a becsavar :
göndör -XGET // localhost: 8080 / mez / response / not_ok
A hibaüzenetet a válasz visszaküldi:
Belső szerverhiba történt
3.3. Egyszerű szöveges válasz
Visszatérhetünk is egyszerű egyszerű szöveges válaszok:
@GET @Path ("/ text_plain") public Response getTextResponseTypeDefined () {String message = "Ez egy egyszerű szöveges válasz"; return Response .status (Response.Status.OK) .entity (message) .type (MediaType.TEXT_PLAIN) .build (); }
Ismét megtehetjük a HTTP GET használatát becsavar a válasz igazolásához:
curl -XGET // localhost: 8080 / mez / válasz / text_plain
A válasz a következő lesz:
Ez egy egyszerű szöveges válasz
Ugyanez az eredmény elérhető a Termel megjegyzés helyett a típus() módszer a Válasz:
@GET @Path ("/ text_plain_annotation") @Produces ({MediaType.TEXT_PLAIN}) public Response getTextResponseTypeAnnotated () {String message = "Ez egy egyszerű szöveges válasz annotációval"; return Válasz .status (Válasz.állapot.OK) .entity (üzenet) .build (); }
A válaszellenőrzést a becsavar:
göndör -XGET // localhost: 8080 / mez / response / text_plain_annotation
Íme a válasz:
Ez egy egyszerű szöveges válasz annotációval
3.4. JSON válasz a POJO használatával
Egy egyszerű A Plain Old Java Object (POJO) szintén használható Jersey válasz felépítéséhez.
Van egy nagyon egyszerű Személy Az alább látható POJO, amelyet a válasz felépítéséhez használunk:
public class Személy {String név; Karakterlánc cím; // szabványos kivitelező // szabványos szerelők és beállítók}
A Személy A POJO mostantól megszokható adja vissza a JSON-t mint válasz testet:
@GET @Path ("/ pojo") nyilvános válasz getPojoResponse () {Személy = új Személy ("Abhinayak", "Nepál"); return Válasz .status (Válasz.állapot.OK) .entity (személy) .build (); }
A GET végpont működése ellenőrizhető - a következők segítségével becsavar parancs:
göndör -XGET // localhost: 8080 / mez / response / pojo
A POJO személyt JSON-vá alakítják, és válaszként visszaküldik:
{"address": "Nepál", "name": "Abhinayak"}
3.5. JSON válasz egyszerű karakterlánc használatával
Tudjuk használni előre formázott karakterláncok a válasz létrehozásához, és egyszerűen megtehető.
A következő végpont egy példa arra, hogy egy JSON hogyan ábrázolt a Húr visszaküldhető JSON néven a Jersey válaszban:
@GET @Path ("/ json") nyilvános válasz getJsonResponse () {String message = "{\" hello \ ": \" Ez egy JSON válasz \ "}"; return Response .status (Response.Status.OK) .entity (message) .type (MediaType.APPLICATION_JSON) .build (); }
Ezt egy HTTP GET használatával ellenőrizheti becsavar a válasz igazolásához:
göndör -XGET // localhost: 8080 / mez / response / json
Ennek az erőforrásnak a meghívásával JSON-t kap:
{"hello": "Ez egy JSON válasz"}
Ugyanez a minta vonatkozik más elterjedt médiatípusokra is, például XML vagy HTML. Csak értesítenünk kell Jersey-t, hogy XML vagy HTML-t használ MediaType.TEXT_XML vagy MediaType.TEXT_HTML és Jersey intézi a többit. Ebben a gyors cikkben Jersey (JAX-RS) válaszokat készítettünk különféle médiatípusokhoz. A cikkben említett összes kódrészlet megtalálható a GitHubon.
4. Következtetés