Voraussetzungen
1. Installation und Einrichtung von Saloon
composer require sammyjo20/saloon
php artisan vendor:publish --tag=saloon-config
2. Erstellen eines Saloon API-Connectors
Beispiel: OpenWeatherMap-API
php artisan make:connector OpenWeatherMapConnector
namespace App\Connectors;
use Sammyjo20\Saloon\Http\SaloonConnector;
use Sammyjo20\Saloon\Http\Request\SaloonRequest;
use Sammyjo20\Saloon\Http\Response\SaloonResponse;
class OpenWeatherMapConnector extends SaloonConnector
{
protected string $baseUrl = 'http://api.openweathermap.org/data/2.5';
public function boot(SaloonRequest $request): void
{
$request->query()->add('appid', env('OPENWEATHERMAP_API_KEY'));
}
}
Info
Stellen Sie sicher, dass Sie Ihren API-Schlüssel in der .env Datei hinzufügen:
OPENWEATHERMAP_API_KEY=your_api_key_here
3. Erstellen und Ausführen von API-Anfragen
php artisan make:request GetWeatherRequest
namespace App\Requests;
use Sammyjo20\Saloon\Http\Request\SaloonRequest;
use Sammyjo20\Saloon\Http\SaloonResponse;
use App\Connectors\OpenWeatherMapConnector;
class GetWeatherRequest extends SaloonRequest
{
protected string $method = 'GET';
protected string $connector = OpenWeatherMapConnector::class;
public function defineEndpoint(): string
{
return '/weather';
}
public function defaultQuery(): array
{
return [
'q' => 'Berlin',
'units' => 'metric'
];
}
public function handleResponse(SaloonResponse $response): void
{
// Verarbeiten Sie die Antwort hier
$data = $response->json();
// Beispiel: Temperatur anzeigen
echo "Die aktuelle Temperatur in Berlin ist: " . $data['main']['temp'] . "°C";
}
}
4. Nutzung des Connectors und der Anfrage in einem Controller
php artisan make:controller WeatherController
namespace App\Http\Controllers;
use App\Requests\GetWeatherRequest;
use Illuminate\Http\Request;
class WeatherController extends Controller
{
public function show(Request $request)
{
$weatherRequest = new GetWeatherRequest();
$response = $weatherRequest->send();
return view('weather', ['weather' => $response->json()]);
}
}
Route definieren
// routes/web.php
use App\Http\Controllers\WeatherController;
Route::get('/weather', [WeatherController::class, 'show']);
Ansicht erstellen
<!-- resources/views/weather.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Wetter in Berlin</title>
</head>
<body>
<h1>Wetter in Berlin</h1>
<p>Temperatur: {{ $weather['main']['temp'] }}°C</p>
<p>Wetter: {{ $weather['weather'][0]['description'] }}</p>
</body>
</html>-->
5. Erweiterung und Anpassung
Tipp
Caching
Implementieren Sie Caching-Mechanismen, um die Leistung zu verbessern und die Anzahl der API-Anfragen zu reduzieren.
Kommentare 0
Noch keine Kommentare. Seien Sie der Erste!