J'apprends JAX-RS (alias JSR-311) en utilisant Jersey. J'ai réussi à créer une ressource racine et je joue avec les paramètres:
@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
}
}
Cela fonctionne très bien et gère n'importe quel format dans les paramètres régionaux actuels qui est compris par le constructeur Date (chaîne) (comme AAAA / mm / jj et mm / jj / AAAA). Mais si je fournis une valeur non valide ou non comprise, j'obtiens une réponse 404.
Par exemple:
GET /hello?name=Mark&birthDate=X
404 Not Found
Comment puis-je personnaliser ce comportement? Peut-être un code de réponse différent (probablement "400 Bad Request")? Qu'en est-il de l'enregistrement d'une erreur? Peut-être ajouter une description du problème ("format de date incorrect") dans un en-tête personnalisé pour faciliter le dépannage? Ou renvoyer une réponse d'erreur complète avec des détails, ainsi qu'un code d'état 5xx?