Sto imparando JAX-RS (aka, JSR-311) usando Jersey. Ho creato con successo una risorsa radice e sto giocando con i parametri:
@Path("/hello")
public class HelloWorldResource {
@GET
@Produces("text/html")
public String get(
@QueryParam("name") String name,
@QueryParam("birthDate") Date birthDate) {
// Return a greeting with the name and age
}
}
Funziona benissimo e gestisce qualsiasi formato nella locale corrente che è compreso dal costruttore Date (String) (come AAAA / mm / gg e mm / gg / AAAA). Ma se fornisco un valore non valido o non compreso, ottengo una risposta 404.
Per esempio:
GET /hello?name=Mark&birthDate=X
404 Not Found
Come posso personalizzare questo comportamento? Forse un codice di risposta diverso (probabilmente "400 Bad Request")? Che dire della registrazione di un errore? Forse aggiungere una descrizione del problema ("formato data errato") in un'intestazione personalizzata per facilitare la risoluzione dei problemi? O restituire un'intera risposta di errore con i dettagli, insieme a un codice di stato 5xx?