Следующее RESTful Service работает нормально.
Пользователи звонят в службу, передавая номер Сотрудника, и он возвращает всю информацию о сотруднике.
@GET
@Path("/employeeData")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public EmployeeObject getEmployeeInfo(@@QueryParam ("EmployeeNumber") int empNo)
{
////Do Stuff
return employeeObject;
}
Из того, что было прочитано, чтобы вернуть обратно пользовательское сообщение об ошибке, оно должно выглядеть примерно так:
@GET
@Path("/employeeData")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public ResponseEntity<Object> getEmployeeInfo(@@QueryParam ("EmployeeNumber") int empNo)
{
////Do Stuff
ApiError apiError = new ApiError(HttpStatus.NOT_FOUND, ex.getLocalizedMessage(), error);
return new ResponseEntity<Object>(apiError, new HttpHeaders(), apiError.getStatus());
}
Но что, если моя процедура более сложна и требует вернуть обратно объект И связанную с ним ошибку. Например:
@GET
@Path("/employeeData")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public EmployeeObject getEmployeeInfo(@@QueryParam ("EmployeeNumber") int empNo)
{
//DB call to get Employee info works fine.
//Based on data in the employee object returned from the 1st call, a 2nd call is
//is made to the database and that fails.
return employeeObject;
}
Несмотря на то, что 2-й вызов не удался, пользователю все еще нужна база данных от 1-го вызова, но также важно знать, что 2-й вызов не выполнен, вместо того, чтобы пользователь думал, что этот сотрудник просто не сделал ' у него нет никаких данных.
Возможно ли это при одновременном использовании продукта Service json mime-тип?
Ключ не должен включать ошибку с объектом. Два независимых объекта должны быть возвращены, только если есть ошибка.