Risposte:
Insieme al chiarimento sopra fornito da @Ruben, voglio aggiungere che puoi anche fare riferimento allo stesso equivalente nell'implementazione Spring RESTFull.
JAX- RS Specification @PathParam - Associa il valore di un parametro di modello URI o un segmento di percorso contenente il parametro di modello a un parametro del metodo di risorsa, a un campo di classe di risorsa oa una proprietà del bean di classe di risorsa.
@Path("/users/{username}")
public class UserResource {
@GET
@Produces("text/xml")
public String getUser(@PathParam("username") String userName) {
...
}
}
@QueryParam - Associa i valori di un parametro di query HTTP a un parametro del metodo di risorsa, a un campo di classe di risorsa oa una proprietà del bean di classe di risorsa.
URI: utenti / query? Da = 100
@Path("/users")
public class UserService {
@GET
@Path("/query")
public Response getUsers(
@QueryParam("from") int from){
}}
Per ottenere lo stesso risultato usando Spring, puoi usare
@PathVariable (primavera) == @PathParam (Jersey, JAX-RS),
@RequestParam (primavera) == @QueryParam (Jersey, JAX-RS)
Inoltre, il parametro della query può essere nullo ma il parametro del percorso no. Se non aggiungi il parametro path, otterrai un errore 404. Quindi puoi usare il parametro path se vuoi inviare i dati come obbligatori.
@javax.ws.rs.QueryParam
This annotation allows you to extract values from URI query parameters.
@javax.ws.rs.PathParam
This annotation allows you to extract values from URI template parameters.
PART-1 : @javax.ws.rs.PathParam
@Path("/mercedes")
public class MercedesService {
@GET
@Path("/e55/{year}")
@Produces("image/jpeg")
public Jpeg getE55Picture(@PathParam("year") String year) {
...
}
If I query the JAX-RS service with GET /mercedes/e55/2006, the getE55Picture()
method would match the incoming request and would be invoked.
PART-2 : @javax.ws.rs.QueryParam
URI might look like this: GET /cus?start=0&size=10
@Path("/cus")
public class GreedCorruption {
@GET
@Produces("application/xml")
public String getDeathReport(@QueryParam("start") int start,
@QueryParam("size") int size) {
...
}
}