Domanda

Sto cercando di utilizzare Jersey per sviluppare un servizio web di riposo.Il mio requisito è per me potrebbe essere in grado di accedere al servizio Web e ai dati di restituzione, in base ai parametri PatPraam passati.Il mio servizio web finora è il seguente:

@GET
@Produces(MediaType.APPLICATION_JSON)
@Consumes({ "application/xml", "application/json", "application/x-www-form-urlencoded" })
@Path("/1.0/people{extension:(.json)*}/{personId:([^/]+?)?}{entityExtension:(.json)*}")
public String getLocation(@PathParam("extension") String extension, @PathParam("personId") String personId,@PathParam("entityExtension") String entityExtension)
{
    if ((personId==null ||personId.equals("")) && (extension == null || extension.equals("")))
        return "No Id, and no extension";
    else
        return "personId= "+personId + ", extension= " + extension+", entityExtension= "+entityExtension;
}
.

Con il codice sopra in mente, quello che sto cercando di ottenere è il seguente:

http://localhost:8080/Jersey/RestService/1.0/people.json
.

dovrebbe restituire l'elenco di tutte le persone nel formato "JSON" (da qui l'estensione .json)

Ora, voglio essere in grado di ottenere le informazioni per una persona in particolare inserendo semplicemente l'ID della persona e restituire le informazioni della persona in JSON / XML in base all'estensione:

http://localhost:8080/Jersey/RestService/1.0/people/Mouhammed89.json
.

Con l'URL sopra, dovrei restituire le informazioni per la personida: Mouhammed89 e restituire le informazioni nel formato JSON.

So che il mio problema è con le espressioni regolari che sto usando, quindi apprezzerei davvero l'aiuto nel crearli.

È stato utile?

Soluzione

Contenitore IMHO (List) e articolo (Person) URL deve essere gestito separatamente. E non è necessario un prefisso di .json esplicito per la restituzione della risposta JSON, deve essere sufficiente solo l'annotazione a livello API.

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/1.0/people") //no need for .json suffix as API only return JSON format
public List<String> allLocations(..){ //jackson etc. will convert return type to json string 
..
}

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/1.0/people/{personId: \\d+}")//digits only
public String getLocation(..){ //jackson etc. will convert return type to json string 
..
}
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top