2016-08-03 3 views
0

Ich möchte mehrere Parameter in meine Methode übergeben. Wie mache ich das? Ich möchte die URL aussehen wie diese http://host/one/two/three/fourMehrere Parameter in Java Rest API JAX-RS - GET Methode

ich den Code unten haben bisher

@GET 
@Produces({MediaType.APPLICATION_JSON}) 
@Path("/{one,two,three}") 

public List<Person> getPeople(@PathParam ("one") String one, @PathParam ("two") String two, @PathParam ("three") String three){ 
    String one = one; 
    String two = two; 
    String three = three; 

} 

Ist dies die richtige Syntax für die params greifen und es zu meiner Methode übergeben? Ich habe einige reguläre Ausdrücke gesehen, die im @Path verwendet werden, aber ich verstehe es nicht. Ich möchte ehrlich gesagt nur die Parameter erfassen und sie möglichst in eine Variable setzen.

+1

Sind Sie für eine unbestimmte Anzahl von Parametern zu fragen, oder gibt es eine feste Anzahl? Sie zeigen durch 3 in Ihrem Beispiel, aber durch 4 in Ihrem Beispiel URL. – gregwhitaker

Antwort

4

Feste Anzahl der Pfadparameter:

@GET 
@Path("/{one}/{two}/{three}") 
@Produces(MediaType.APPLICATION_JSON) 
public Response foo(@PathParam("one") String one, 
        @PathParam("two") String two, 
        @PathParam("three") String three) { 

    ... 
} 

Variable Anzahl von Pfadparameter:

@GET 
@Path("/{path: .+}") 
@Produces(MediaType.APPLICATION_JSON) 
public Response foo(@PathParam("path") String path) { 

    String[] paths = path.split("/"); 

    ... 
} 
+2

@Luke Überprüfen Sie die [Dokumentation] (https://jersey.java.net/documentation/latest/jaxrs-resources.html#d0e2193). –

+1

Sehr geschätzt! – Luke