J'ai essayé de faire une application Jersey qui prend la structure suivante du chemin:@Path à Jersey
Exemple 1 (http: // omis en raison des restrictions stackoverflow) example.com/source/{source id}/ example.com/source/
Avec code (gestion des erreurs et le code inutiles omis):
Avec code (résumé):
@Path("/source/")
public class SourceREST {
...
@GET
public Response getSource() {
return Response.ok("Sources List (no field)").build();
}
@GET
@Path("/{source-id}")
public Response getSource(@PathParam("source-id") String sourceID) {
return Response.ok("Source: " + sourceID).build();
}
}
Cela fonctionne très bien.
Exemple 2: example.com/data/{source-id}/{info-id}/ example.com/data/{source-id}/
Avec code (gestion des erreurs et inutiles Code omis):
@Path("/data/")
public class DataREST {
...
@GET
@Path("/{source-id}")
public Response getContext(@PathParam("source-id") String sourceID) {
return Response.ok("Source: " + sourceID + " Last ContextInfo").build();
}
@GET
@Path("/{source-id}/{data-id}")
public Response getContext(@PathParam("source-id") String sourceID,
@PathParam("data-id") String dataID) {
return Response.ok("Source: " + sourceID + " Data: " + dataID).build();
}
}
Dans l'exemple 2, je peux accéder à une URL comme example.com/data/111/222/ bien, mais en essayant d'obtenir hexample.com/data/111/ me donne une erreur 405 Code (méthode non autorisée). J'ai aussi essayé de faire une méthode entière qui vérifie si {data-id} est vide ou vide et dans ce cas, traite la pétition comme dans la première méthode, mais ne fonctionne pas non plus.
Une idée?
Merci!
Avez-vous essayé example.com/data/111 (sans barre oblique)? – Jonas
Merci pour la question, exactement ce que je cherchais – Genry