public <T, U extends ZendeskObject> U runRequest(String resource, RequestMethod requestMethod, T body, Class<U> returnType) throws Exception {
String payload = JsonHelper.marshal(body);
RequestResult response = runRequest(resource, requestMethod, payload);
if (response.isNotCreated() && response.isNotOk()) {
throw new ZendeskApiException(response.getContent());
}
return JsonHelper.unmarshal(response.getContent(), returnType);
}