Uczę się JAX-RS (alias JSR-311) przy użyciu Jersey. Z powodzeniem utworzyłem Zasób root i bawię się parametrami:
@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
}
}
Działa to świetnie i obsługuje dowolny format w bieżących ustawieniach regionalnych rozumiany przez konstruktor Date (String) (np. RRRR / mm / dd i mm / dd / RRRR). Ale jeśli podam wartość, która jest niepoprawna lub niezrozumiała, otrzymuję odpowiedź 404.
Na przykład:
GET /hello?name=Mark&birthDate=X
404 Not Found
Jak mogę dostosować to zachowanie? Może inny kod odpowiedzi (prawdopodobnie „400 złych żądań”)? Co z logowaniem błędu? Może dodać opis problemu („zły format daty”) w niestandardowym nagłówku, aby ułatwić rozwiązywanie problemów? Lub zwróć całą odpowiedź na błąd wraz ze szczegółami, wraz z kodem statusu 5xx?