Ho un'app in cui l'utente invia un modulo che esegue uno scambio SOAP per ottenere alcuni dati da un'API Web. Se ci sono troppe richieste in un certo tempo, il server Throttle nega l'accesso. Ho creato una visualizzazione degli errori personalizzata per questo chiamato throttle.blade.php
che viene salvato in resources\views\pages
. In routes.php
ho chiamato il percorso come:Reindirizzamento a route non funzionante in Laravel 5
Route::get('throttle', '[email protected]');
In PagesController.php
ho aggiunto la funzione rilevante come:
public function throttleError() {
return view('pages.throttle');
}
Ecco la classe SoapWrapper
ho creato per svolgere gli scambi SOAP:
<?php namespace App\Models;
use SoapClient;
use Illuminate\Http\RedirectResponse;
use Redirect;
class SoapWrapper {
public function soapExchange() {
try {
// set WSDL for authentication
$auth_url = "http://search.webofknowledge.com/esti/wokmws/ws/WOKMWSAuthenticate?wsdl";
// set WSDL for search
$search_url = "http://search.webofknowledge.com/esti/wokmws/ws/WokSearch?wsdl";
// create SOAP Client for authentication
$auth_client = @new SoapClient($auth_url);
// create SOAP Client for search
$search_client = @new SoapClient($search_url);
// run 'authenticate' method and store as variable
$auth_response = $auth_client->authenticate();
// add SID (SessionID) returned from authenticate() to cookie of search client
$search_client->__setCookie('SID', $auth_response->return);
} catch (\SoapFault $e) {
// if it fails due to throttle error, route to relevant view
return Redirect::route('throttle');
}
}
}
Tutto funziona come dovrebbe fino a quando non raggiungo il numero massimo di richieste consentito dal server Throttle, a quel punto dovrebbe essere visualizzato m y vista personalizzata, ma viene visualizzato l'errore:
InvalidArgumentException in UrlGenerator.php line 273:
Route [throttle] not defined.
Non riesco a capire perché sta dicendo che il percorso non è definito.