Sprache:

Suche

Wie man mehrere API-Verbindungen in Laravel handhabt

  • Teilen:
Wie man mehrere API-Verbindungen in Laravel handhabt

Einführung

Die Arbeit mit APIs kann ein komplexer und zeitaufwändiger Prozess sein, bei dem Sie eine breite Palette von Aufgaben bewältigen müssen. Das LaraClient-Paket wurde entwickelt, um diesen Prozess zu vereinfachen und die Arbeit mit APIs in Laravel zu erleichtern.

Lara Client ist ein Laravel-Paket, das die Arbeit mit mehreren APIs in Laravel vereinfacht, indem es Entwicklern ermöglicht, API-Verbindungen in einer zentralen Konfigurationsdatei einzurichten, in der die Basis-URI, der API-Schlüssel und andere Einstellungen für jede Verbindung angegeben werden. Das Paket enthält auch eine Cache-Schicht, um Anfragen zu beschleunigen, und ein Logging-System, um API-Anfragen und -Antworten für Debugging-Zwecke zu verfolgen. Mit Lara Client können Entwickler schnell mehrere APIs in ihre Laravel-Anwendungen integrieren, was die Entwicklungszeit und den Aufwand reduziert und die Verwaltung von API-Integrationen im Laufe der Zeit erleichtert. Lara Client unterstützt auch andere HTTP-Methoden wie POST, PUT und DELETE und erleichtert so die Interaktion mit einer Vielzahl von APIs.

Lesen Sie auch: Die wichtigsten Laravel-Interview-Fragen

Einer der wichtigsten Vorteile von LaraClient ist seine Benutzerfreundlichkeit. Sobald Sie Ihre API-Verbindungen in der Konfigurationsdatei eingerichtet haben, ist das Stellen von API-Anfragen so einfach wie der Aufruf einiger Methoden der LaraClient.php Klasse.

Einrichtung

Um das Paket zu installieren, installieren Sie es einfach von composer.

composer require usamamuneerchaudhary/laraclient

Sobald das Paket installiert ist, führen Sie die Migrationen aus, die die Protokolltabelle erstellen werden

Lesen Sie auch: Eine zu vielen polymorphe Beziehung in Laravel

php artisan migrate

und schließlich, vergessen Sie nicht, die LaraClientServiceProvider zu app.php

Usamamuneerchaudhary\LaraClient\LaraClientServiceProvider::class,

Veröffentlichen Sie außerdem die Konfigurationsdatei mit dem folgenden Befehl:

php artisan vendor:publish --provider="Usamamuneerchaudhary\LaraClient\LaraClientServiceProvider" --tag="config"

Dadurch wird eine lara_client.php im Konfigurationsverzeichnis Ihrer Laravel-Anwendung. Diese Datei enthält alle Verbindungszeichenfolgen zu APIs von Drittanbietern.

In diesem Beispiel werden wir die geoDB-Städte-API und die Wetter-API verwenden.

Unser lara_client.php sieht so aus:

<?php
return [
    'default' => env('API_CLIENT', 'weatherapi'),
    'connections' => [
        'geodb' => [
            'base_uri' => env('GEODB_BASE_URI', 'https://wft-geo-db.p.rapidapi.com/v1/geo/'),
            'api_key' => env('GEODB_API_KEY', ''),
            'default_headers' => [
                'Accept' => 'application/json',
                'Content-Type' => 'application/json',
                'X-RapidAPI-Key' => '23c6b0817bmsh5720c5bcb04bb86p151c03jxxxxxxxxxxx',
                'X-RapidAPI-Host' => 'wft-geo-db.p.rapidapi.com'
            ],
            'api_secret' => env('GEODB_API_SECRET', ''),
            'timeout' => env('GEODB_TIMEOUT', 30),
            'rate_limit' => [
                'limit' => env('GEODB_RATE_LIMIT', 60),
                'interval' => env('GEODB_RATE_LIMIT_INTERVAL', 60),
            ],
        ],
        'weatherapi' => [
            'base_uri' => env('WEATHERAPI_BASE_URI', 'https://weatherapi-com.p.rapidapi.com/'),
            'api_key' => env('WEATHERAPI_API_KEY', ''),
            'default_headers' => [
                'Accept' => 'application/json',
                'Content-Type' => 'application/json',
                'X-RapidAPI-Key' => '23c6b0817bmsh5720c5bcb04bb86p151c03jxxxxxxxxxx'
            ],
            'api_secret' => env('WEATHERAPI_API_SECRET', ''),
            'timeout' => env('WEATHERAPI_TIMEOUT', 30),
            'rate_limit' => [
                'limit' => env('WEATHERAPI_RATE_LIMIT', 60),
                'interval' => env('WEATHERAPI_RATE_LIMIT_INTERVAL', 60),
            ],
        ],
    ],
];

können Sie diese Umgebungsvariablen in .env datei.

Pro-Tipp für verschiedene Anwendungsumgebungen

Sie können auch ganz einfach API-Schlüssel und andere Einstellungen für verschiedene Umgebungen wie Entwicklung, Staging oder Produktion mithilfe von Umgebungsvariablen konfigurieren.

Lesen Sie auch: Laravel API Entwicklung

In Ihrem .env fügen Sie die erforderlichen API-Schlüssel und Einstellungen für Ihre Entwicklungsumgebung hinzu:

MYAPI_BASE_URI=https://api.example.com/
MYAPI_API_KEY=your_development_api_key
MYAPI_API_SECRET=your_development_api_secret
MYAPI_TIMEOUT=30
MYAPI_RATE_LIMIT=60
MYAPI_RATE_LIMIT_INTERVAL=60

Für verschiedene Umgebungen wie Staging oder Produktion, erstellen Sie neue Umgebungsdateien wie .env.staging oder .env.production und fügen Sie die API-Schlüssel und Einstellungen für jede Umgebung hinzu:

Wenn Sie Ihre Anwendung in verschiedenen Umgebungen bereitstellen, setzen Sie die entsprechenden Umgebungsvariablen für jede Umgebung. Sie können die php artisan config:cache um die Konfigurationsdateien nach dem Setzen der Umgebungsvariablen zwischenzuspeichern.

Durch die Verwendung von Umgebungsvariablen können Sie Ihre API-Schlüssel und Einstellungen für verschiedene Umgebungen einfach konfigurieren, ohne Ihren Anwendungscode zu ändern. Dieser Ansatz ist sicher und flexibel und ermöglicht es Ihnen, sensible Daten wie API-Schlüssel an einem zentralen Ort zu verwalten.

Anwendungsfall

Jetzt ist alles eingerichtet und wir können unsere beiden definierten APIs in unserer Anwendung verwenden. Für dieses Beispiel verwenden wir den einfacheren Ansatz.

Erstellen Sie einen Laravel-Controller:

php artisan make:controller ApiController
<?php
namespace App\Http\Controllers;
use Usamamuneerchaudhary\LaraClient\LaraClient;
class ApiController extends Controller
{
    
    
    public function geodbapi()
    {
        $client = new LaraClient('geodb');
        $response = $client->get('countries');
        $currentWeather = $response->getData();
    }
    public function weatherapi()
    {
        $client = new LaraClient('weatherapi');
        $response = $client->get('current.json', ['q' => 'london']);
        $currentWeather = $response->getData();
    }
}

Sie können diese Daten an eine Ansicht zurückgeben oder mit den JSON-Daten spielen, wie Sie möchten:

Protokollierung

Dieses Paket verfügt auch über ein cooles Protokollierungssystem, das Anfragen und Antworten für jeden Aufruf einer API aufzeichnet. Dies kann für Debugging-Zwecke unglaublich nützlich sein, da Sie so die genauen Daten sehen können, die während jeder API-Interaktion gesendet und empfangen wurden. Die Protokolle können in der Datenbank gespeichert und über eine benutzerdefinierte Route in Ihrem Browser aufgerufen werden:

Lesen Sie auch: Datenbank-Backups in Laravel automatisieren

http://yourwebsite.com/laraclient/logs

Dadurch wird eine Liste der getätigten Aufrufe mit Endpunkten, Zeit, Nutzdaten der Anfrage und Antwortkörper angezeigt.

Sie können die Protokolle auch nach Endpunkten filtern:

http://yourwebsite.com/laraclient/logs?endpoint=https://weatherapi-com.p.rapidapi.com/current.json

 

Lesen Sie auch: Standardisierung von API-Antworten in Laravel

Auf ähnliche Weise können wir auch POST-, PUT- und PATCH-Aufrufe verwenden.

Szenarien für die Integration mehrerer APIs

Mehrere APIs können in einer Vielzahl von Szenarien nützlich sein. Zum Beispiel, wenn Sie eine E-Commerce-Anwendung, können Sie eine API für die Zahlungsabwicklung, eine andere API für die Verwaltung von Versand und Logistik und eine dritte API für die Bearbeitung von Kundendienstanfragen verwenden. Wenn Sie eine Plattform für soziale Medien aufbauen, könnten Sie eine API für die Authentifizierung und Benutzerdaten, eine andere API für die Nachrichtenübermittlung und eine dritte API für das Hoch- und Herunterladen von Medien verwenden. Mehrere APIs können auch in Szenarien nützlich sein, in denen Sie Dienste von Drittanbietern integrieren müssen, wie z. B. Wetter- oder Kartierungs-APIs. Durch die Verwendung mehrerer APIs können Sie die Stärken der einzelnen Dienste nutzen, um eine robustere und flexiblere Anwendung zu erstellen.

Lesen Sie auch: Laravel Livewire Kommentar System

Fazit

Abschließend lässt sich sagen, dass das LaraClient-Paket einen intuitiven und rationalisierten Ansatz für die Arbeit mit APIs in Laravel bietet. Durch die Vereinfachung von Authentifizierung, Ratenbegrenzung, Fehlerbehandlung und mehr kann LaraClient Entwicklern helfen, bei der Erstellung von API-gesteuerten Anwendungen Zeit und Mühe zu sparen. Mit seiner einfachen Einrichtung und den Protokollierungsfunktionen ist LaraClient ein wertvolles Tool für jeden, der mit APIs in seinen Laravel-Anwendungen arbeiten möchte.

Github-Repository: LaraClient

TWT Staff

TWT Staff

Writes about Programming, tech news, discuss programming topics for web developers (and Web designers), and talks about SEO tools and techniques