Tutorial · Laravel · 25.07.2024

Tutorial: Saloon-API-Integrationen in Laravel

Saloon ist ein leistungsstarkes PHP-Paket, das die Integration von APIs in Ihre Laravel-Anwendungen erleichtert. Mit Saloon können Sie API-Anfragen einfach konf...

Voraussetzungen

Grundkenntnisse in PHP und Laravel Eine funktionierende Laravel 11-Installation Ein API-Schlüssel für einen externen Dienst (z.B. OpenWeatherMap, Google Maps, etc.)

1. Installation und Einrichtung von Saloon

Saloon installieren Um Saloon in Ihre Laravel-Anwendung zu integrieren, müssen Sie es zuerst über Composer installieren. Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus:
shell
composer require sammyjo20/saloon
Saloon bietet eine flexible Konfigurationsmöglichkeit. Erstellen Sie eine Konfigurationsdatei für Saloon, wenn Sie eine spezifische Konfiguration benötigen:
shell
php artisan vendor:publish --tag=saloon-config
Dadurch wird die Datei config/saloon.php erstellt, die Sie nach Bedarf anpassen können.

2. Erstellen eines Saloon API-Connectors

Ein Connector in Saloon stellt eine Verbindung zu einem spezifischen API-Dienst her und verwaltet alle Anfragen zu diesem Dienst.

Beispiel: OpenWeatherMap-API

Erstellen Sie einen neuen Connector für die OpenWeatherMap-API:
shell
php artisan make:connector OpenWeatherMapConnector
Dies erstellt eine neue Datei unter App/Connectors/OpenWeatherMapConnector.php. Passen Sie diese Datei wie folgt an:
php
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:

php
OPENWEATHERMAP_API_KEY=your_api_key_here

3. Erstellen und Ausführen von API-Anfragen

Beispiel: Wetterdaten abrufen Erstellen Sie eine Anfrage, um aktuelle Wetterdaten für eine bestimmte Stadt abzurufen:
shell
php artisan make:request GetWeatherRequest
Passen Sie die Datei App/Requests/GetWeatherRequest.php wie folgt an:
php
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

Beispiel: Wetterdaten im Controller abrufen Erstellen Sie einen neuen Controller:
shell
php artisan make:controller WeatherController
Fügen Sie dem Controller die Logik hinzu, um die Wetterdaten abzurufen und an eine Ansicht zu übergeben:
php
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

Definieren Sie eine Route, um den Controller zu verbinden:
php
// routes/web.php
use App\Http\Controllers\WeatherController;

Route::get('/weather', [WeatherController::class, 'show']);

Ansicht erstellen

Erstellen Sie eine einfache Ansicht, um die Wetterdaten anzuzeigen:
php
<!-- 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

Weitere Anfragen hinzufügen Sie können weitere Anfragen für verschiedene Endpunkte der API erstellen. Erstellen Sie einfach neue Request-Klassen und passen Sie die Endpunkte und Parameter an.
Middleware und Fehlerbehandlung Fügen Sie Middleware hinzu, um die Authentifizierung oder andere Bedingungen zu überprüfen, bevor eine Anfrage gesendet wird. Nutzen Sie die Fehlerbehandlung von Saloon, um API-Fehler ordnungsgemäß zu verarbeiten.
Mit Saloon können Sie API-Integrationen in Laravel schnell und effizient umsetzen. Dieses Tutorial bietet Ihnen eine solide Grundlage, um mit Saloon zu starten und es in Ihre Laravel 11-Anwendung zu integrieren. Experimentieren Sie weiter mit verschiedenen APIs und erweitern Sie Ihre Anwendung mit neuen Funktionen.

Tipp

Caching
Implementieren Sie Caching-Mechanismen, um die Leistung zu verbessern und die Anzahl der API-Anfragen zu reduzieren.

Quelle: https://birdapi.de/blog/tutorials-laravel/tutorial-saloon-api-integrationen-in-laravel