GraphQL выдаст тело ответа в следующем формате JSON
{
"data": { ... },
"errors": [ ... ]
}
Если были ошибки, в нем будут поля ошибок.
Таким образом, это плохая идея, поскольку вы проверяете, содержит ли весь ответ JSON строку errors
, а не поле errors
. В случае успеха он определенно потерпит неудачу только потому, что data
содержит строку errors
(например, представьте, что это запрос пользователя get, но пользователь использует errors
в качестве своего логина)
Вы должны разобрать тело ответа в объект JSON и проверить, содержит ли JSON поле с именем errors
или нет.
Если у вас есть Jackson
в пути к классам, RestTemplate
обнаружит его и автоматически настроит для анализа JSON, что позволит вам сделать что-то вроде:
ResponseEntity<Map<String,Object>> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, Map.class);
Map<String,Object> body = response.getBody();
if(body.containsKey("errors")){
//handleException
}