Sto utilizzando il client JAX-RS per consumare API REST. Non volevo permettere a JAX-RS di fare un sacco di eccezioni, quindi sto ispezionando l'oggetto Response
da solo. A volte però, mi interessa solo certe codici di stato e vorrei JAX-RS a caduta di nuovo al comportamento predefinito e un'eccezione reale (che sarà gestita da un consiglio AOP). C'è un modo semplice per farlo?JAX-RS: conversione risposta a eccezione
public void delete(long id) {
Response response = client.delete(id);
Response.Status status = Response.Status.fromStatusCode(response.getStatus());
if (status == Response.Status.OK) {
return;
}
if (status == Response.Status.NOT_FOUND) {
throw new TeamNotFoundException();
}
if (status == Response.Status.CONFLICT) {
throw new TeamHasAssignedUsersException();
}
// if status was internal server error or something similar,
// throw whatever exception you would throw at first place
// magic.throwException(response)
}
Quando non si ottiene oggetto Response da JAX-RS API, si getterà mucchio di eccezioni come BadRequestException, ClientErrorException ecc, ma non mi piace guidare la mia logica di business con le eccezioni – Xorty
Vuoi dire che quando si fanno una richiesta con TypedEntity come 'client.get (Customer.class)', quindi ottieni quelle eccezioni, e in caso contrario quando lavori direttamente con un 'Response' - no? –
Sì, questo è ... – Xorty