JAX-RS

A Wikipédiából, a szabad enciklopédiából

A JAX-RS: Java API for RESTful Web Services a Java programozási nyelv egy API-ja, amely lehetővé teszi a REST architektúrájú webszolgáltatások létrehozását. A programozás során a Java SE 5-ben bevezetett annotációkat használunk az egyes paraméterek megfelelő jelölésére, ami jelentősen leegyszerűsíti a fejlesztés folyamát. Az 1.1-es verziótól kezdve a JAX-RS hivatalos része a Java EE 6 szabványcsaládnak. A JSR 311 specifikálja. Hatalmas előnye, hogy nem szükséges semmilyen konfiguráció a használatához, csak a publikálandó metódusokat kell megjelölnünk a megfelelő annotációkkal, és a JAX-RS keretrendszere elvégzi a szükséges lépéseket, továbbá megspórolhatjuk a hagyományos webszolgáltatásoknál megszokott XML transzformációk nagy részét.

Specifikáció[szerkesztés | forrásszöveg szerkesztése]

Ahhoz, hogy egy általunk készített osztályt, amely lehet akár egy POJO is, megfelelő annotációkkal kell ellátni, amelyek a következők lehetnek:

  • @Path: egy relatív útvonal, amelyen a megadott erőforrást, amely lehet egy osztály vagy annak a metódusa, elérünk.
  • @GET, @PUT, @POST, @DELETE: megadja, hogy a böngésző milyen HTTP kérést használjon az erőforrás eléréséhez.
  • @Produces: megadja a válasz MIME típusát.
  • @Consumes: a HTTP kérés accept paraméterét állítja be, amivel szabályozhatjuk, hogy az adott erőforrásunk milyen típusú adatot fogad el.
  • @PathParam, @QueryParam, @HeaderParam, @CookieParam, @MatrixParam, @FormParam: specifikálja a paraméter forrását.
    • @PathParam: az ilyen annotációval jelölt paraméter a HHTP kérés URL-jében van megadva.
    • @QueryParam: az URL kérés paraméteréből jön.
    • @HeaderParam: a HTTP kérés fejlécében levő paramétereket tudjuk ezzel az annotációval elkérni.
    • @CookieParam: a HTTP kéréshez csatolt sütiből (angolul cookie-ból) jön.
    • @MatrixParam: a kérések mátrix paramétereit[1] kérhetjük el ezen a módon.
    • @FormParam: a HTTP POST kérésben elküldött paramétereket tudjuk elkérni vele.

Példa[szerkesztés | forrásszöveg szerkesztése]

A következő példában egy egyszerű REST alapú webszolgáltatás látható, amely visszaadja a az URL-ben megadott név esetén a "Hello név" szöveget.

import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.Path;
 
// A "/greetings" relatív URL-en lesz elérhető ez az osztály.
@Path("/greetings/{nev}")
public class GreetingsResource {
 
    // Amikor HTTP GET kérést intézünk a szerver felé a www.valami.hu/greetings URL-re,
    // akkor az alábbi metódus fog lefutni, és az eredménye egy "plain/text" MIME típusú
    // szöveg lesz.
    @GET
    @Produces("text/plain")
    public String getHello(@PathParam("nev") String nev) {
        return "Hello " + nev;
    }
}

Implementációk[szerkesztés | forrásszöveg szerkesztése]

Források[szerkesztés | forrásszöveg szerkesztése]

  1. Hivatalos Oracle JAX-RS Tutorial
  2. Jersey tutorial
  3. A JSR 311 specifikáció