Cum integrezi un api extern intr-un site cu laravel

Configurare noua (How To)

Situatie

Un api extern te poate ajuta foarte mult in procesul de dezvoltare al aplicatiei sau al site-ului tau. Si iti voi prezenta in continuare un exemplu simplu de integrare a unui api extern intr-o aplicatie cu laravel.

Solutie

Începe prin a instala pachetul Guzzle HTTP client în Laravel. Acesta este un client HTTP simplu și elegant pentru PHP.

composer require guzzlehttp/guzzle

Creează un serviciu de client HTTP Guzzle în interiorul directorului app/Services, unde vei defini metodele necesare pentru a efectua solicitări HTTP la API-ul extern.

<?php

namespace App\Services;

use GuzzleHttp\Client;

class ExternalApiService
{
    private $client;
   
    public function __construct()
    {
        $this->client = new Client([
            ‘base_uri’ => ‘https://api.example.com/’,
            ‘timeout’  => 2.0,
        ]);
    }

    public function getUsers()
    {
        $response = $this->client->request(‘GET’, ‘users’);
        return json_decode($response->getBody()->getContents(), true);
    }
}

În exemplul de mai sus, am creat o clasă ExternalApiService care utilizează un obiect Client de la Guzzle pentru a efectua o solicitare GET către API-ul extern https://api.example.com/. Metoda getUsers returnează un array PHP care conține răspunsul API-ului extern convertit în format JSON.

În controlerul Laravel unde vrei să utilizezi API-ul extern, adaugă o proprietate de tip ExternalApiService pentru a obține un obiect al serviciului.

<?php

namespace App\Http\Controllers;

use App\Services\ExternalApiService;

class MyController extends Controller
{
    private $externalApiService;
   
    public function __construct(ExternalApiService $externalApiService)
    {
        $this->externalApiService = $externalApiService;
    }

    public function getUsersFromExternalApi()
    {
        $users = $this->externalApiService->getUsers();
        return view(‘users’, compact(‘users’));
    }
}

În exemplul de mai sus am creat o clasă de controler MyController care utilizează serviciul ExternalApiService prin intermediul injecției de dependențe pentru a obține datele de utilizator din API-ul extern. Metoda getUsersFromExternalApi apelează metoda getUsers a serviciului și returnează o vizualizare Laravel care afișează utilizatorii.

Adaugă o rută în fișierul routes/web.php pentru a accesa metoda din controler care utilizează serviciul API-ului extern.

Route::get(‘/users’, [MyController::class, ‘getUsersFromExternalApi’]);

În exemplul de mai sus, am adăugat o rută care apelează metoda getUsersFromExternalApi din clasa MyController.

Accesează ruta în browser pentru a vedea datele utilizatorului preluate din API-ul extern. Acesta este un exemplu simplu pentru a integra un API extern într-un site Laravel, dar pot exista unele variații în funcție de API-ul utilizat și de nevoile specifice.

Tip solutie

Permanent

Voteaza

(6 din 11 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?