REST využíva HTTP metódy na vykonávanie operácií nad zdrojmi. Dve najčastejšie používané sú GET a POST:
Príklad GET požiadavky: GET /api/users?name=Jano
Príklad POST požiadavky: POST /api/users
s telom:
{ "name": "Jano", "email": "jano@example.com" }
Framework Jersey v Java EE poskytuje anotácie na spracovanie vstupov:
@QueryParam
– na čítanie parametrov z URL (?key=value)@PathParam
– ak je parameter súčasťou cesty, napr. /users/{id}
@FormParam
– na čítanie údajov z formulárov x-www-form-urlencoded
@GET @Path("/user") public Response getUser(@QueryParam("id") int id) { return Response.ok("User ID: " + id).build(); } @POST @Path("/user/{id}") public Response updateUser(@PathParam("id") int id, @FormParam("email") String email) { return Response.ok("Updated email for ID " + id).build(); }
REST služby môžu prijímať vstupy v rôznych formátoch:
Ak prijímate JSON dáta, odporúčané je použiť POJO objekt ako parameter:
@POST @Consumes(MediaType.APPLICATION_JSON) public Response createUser(User user) { return Response.ok("Created: " + user.getName()).build(); }
Pri práci s parametrami si treba dať pozor na:
%20
pre medzeru)Príklady problémových požiadaviek:
GET /api/users?query=drop%20table%20users;
Takéto pokusy musia byť validované a filtrované.
Najlepší nástroj na testovanie REST API je Postman. Môžete:
Odporúčané je zapnúť logovanie v aplikácii, napríklad cez System.out.println()
alebo použiť Logger (napr. SLF4J, Logback).
Všetky tieto techniky si môžete vyskúšať v kurze Java REST služby s Hibernate, kde vytvoríte REST API, prepojíte ho s databázou pomocou JPA a vytvoríte jednoduchý frontend v Angulare.
Viac informacií preberáme na kurze: