Klient Allegro REST API

W tym wpisie przedstawię przykład odwoływania się do zasobów Allegro za pomocą biblioteki Httpful.

Jak zaznacza sam autor, biblioteka charakteryzuje się prostą obsługą i wsparciem dla łańcuchowych wiązań metod (chainable).

Głównym założeniem jest uproszczenie wywołań HTTP przez zrezygnowanie z bezpośredniego odwoływania się do CURL.

Instalacja

Bibliotekę możesz ściągnąć bezpośrednio ze strony:

https://github.com/nategood/httpful

Ja użyłem Composera i zainstalowałem bibliotekę w katalogu:

C:\htdocs\Allegro

za pomocą polecenia:

composer require "nategood/httpful"

Wynik:

c:\htdocs\Allegro>composer require "nategood/httpful"
Using version ^0.2.20 for nategood/httpful
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing nategood/httpful (0.2.20)
    Downloading: 100%

Writing lock file
Generating autoload files

c:\htdocs\Allegro>

Przykład

Jako przykład posłuży nam zasób ratings-api, który posiada dwie metody:

  1. get /ratings-api/sellers/ratings
  2. get /ratings-api/sellers/summary

My użyjemy tej pierwszej. Szczegóły na stronie:
https://developer.allegroapi.io/documentation/

Zakładam, że posiadasz już Token dostępowy (Access Token) i klucz Api (Api-Key). Niniejszy wpis nie traktuje o autoryzacji aplikacji.

Odsyłam do:
http://allerest.pl/logowanie-do-allegro-rest-api/

Kod źródłowy

<?php
// Jeśli używasz Composera
require __DIR__ . '/vendor/autoload.php';

// Standardowy Autoloader
// require(__DIR__ . '/../bootstrap.php'); 

use \Httpful\Request;

try {
    $uri = 'https://allegroapi.io/ratings-api/sellers/ratings';
    $request = Request::get($uri)->addHeaders([
        'Accept' => 'application/vnd.allegro.public.v2+json',
        'Content-Type' => 'application/vnd.allegro.public.v2+json',
        'Api-Key' => '[Api-Key]',
        'Authorization' => 'Bearer [Access Token]'
    ])->send();
    
    if ($request->hasBody()) {
        //var_dump($request->body);
        if ($request->code >= 300) {
            echo 'Serwer zwrócił następujące błędy:<br>';
            foreach($request->body->errors as $error) {
                echo sprintf('- Message: %s, Code: %s<br>', $error->message, $error->code);
            }
        } else {
            echo "totalPages: " . $request->body->totalPages;
        }
    } else {
        echo 'Serwer nic nie zwrócił.';
    }
} catch (ConnectionErrorException $e) {
    echo $e->getMessage();
} catch (Exception $e) {
    echo $e->getMessage();
}
?>

Comments are closed.