Ich habe mich gefragt, was die beste Vorgehensweise ist, um zu überprüfen, ob die Auffrischungsreaktion in Ordnung ist und die Anwendung nicht blockiert wird. Ich benutze PHP/Symfony und was ich tue jedes Mal, wenn ich einen Anruf zu tun ist folgende:Bewährtes Verfahren zur Überprüfung der Auffrischungsantwort
try {
$response = $this->getClient()->request('GET', '/api/rest/contact/' . $email);
} catch (\Exception $e) {
$logger = $this->get('monolog.logger.myapp');
$logger->critical('New exception caught while getting user: ' . $e);
throw new HttpException(406, "Error while getting user.");
}
if(isset($response) && $response->getStatusCode() == 200) {
return $response->getBody()->getContents();
}
// if it's not 200 or the response is not set, I send a JsonResponse or a flash message to be used in a form for instance:
$this->addFlash('error', $this->get('translator')->trans('form.subscribe.fail', array(), 'messages'));
// or
return new JsonResponse(array('messages' => [0 => $this->get('translator')->trans('form.subscribe.fail', array(), 'messages')]), 400);
EDIT auf die Antwort anzupassen erhalten:
try {
$response = $this->getClient()->request('GET', '/api/rest/contact/' . $email);
} catch (\Exception $e) {
$logger = $this->get('monolog.logger.myapp');
$logger->critical('New exception caught while getting user: ' . $e);
// the response is not 200 so I send a JsonResponse or a flash message to be used in a form for instance:
$this->addFlash('error', $this->get('translator')->trans('form.subscribe.fail', array(), 'messages'));
// or
return new JsonResponse(array('messages' => [0 => $this->get('translator')->trans('form.subscribe.fail', array(), 'messages')]), 400);
}
return $response->getBody()->getContents();
danke für den link! Sehr interessant die Wiederholungsfunktion. Ich habe meinen Code bearbeitet, um ihn an deine Antwort anzupassen. Ich kann also annehmen, dass die Antwort 200 war, wenn keine Ausnahme gefunden wurde, und ich kann weiterhin die Details der Antwort erhalten. Allerdings arbeite ich tatsächlich mit einer "crappy" API, wie du gesagt hast. Es gibt einen Fehler zurück, selbst wenn die Antwort 200 ist. In diesem Fall ist meine Überprüfung erforderlich. – unadivadantan