Kilka słów o API Platform
Obecnie wymiana danych między zewnętrznymi systemami jest niezbędnym elementem wszelkich aplikacji. Świetnie sprawdzi się w platformach nastawionych na sprzedaż wielokanałową, gdzie dane pochodzą z różnych źródeł. Mowa o omnichannel ecommerce. Udostępnianie danych oraz możliwość ich modyfikacji jest możliwa między innymi dzięki API, czyli pewnemu ściśle określonemu zestawowi reguł i ich opisów, w jaki programy komputerowe komunikują się między sobą. Jest to chyba najbardziej znany, bezpieczny oraz optymalny sposób. Jest to przeważnie API oparte o styl architektoniczny REST.
Takie API musi być przede wszystkim zrozumiałe i czytelne dla wszystkich, którzy będą z niego korzystali. Interfejs API powinien mieć dobrą dokumentację, najlepiej z przykładami. W celu stworzenia API wraz z wartościową dokumentacją można skorzystać np. z API Platform.
API Platform
API Platform zostało utworzone w roku 2015 przez Kevina Dunglasa. Zawiera bibliotekę PHP. Jest to narzędzie oparte na frameworku PHP Symfony.
Jak szybko stworzyć API?
Poniżej przykład jak stworzyć API z użyciem API Platform dla prostego modelu CRUD.
1. Projekt tworzymy poprzez polecenie
composer create-project symfony/skeleton nazwa-projektu
Utworzy nam to folder z nazwą projektu oraz zainstaluje pierwsze niezbędne paczki. symfony/skeleton to minimalna opcja projektu, która instaluje tylko zależności niezbędne do działania Symfony.
2. Następnie odpalamy polecenie:
composer require api
które instaluje nam właśnie API Platform.
3. Teraz dla przykładu możemy sobie w katalogu Entity utworzyć prosty model, np. User.php.
<?php namespace App\Entity; use ApiPlatform\Core\Annotation\ApiResource; /** * @ApiResource */ class User { /** @var string */ private $id; /** @var string */ private $firstName; /** @var string */ private $lastName; /** @var string */ private $email; public function __construct( string $id, string $firstName, string $lastName, string $email ) { $this->id = $id; $this->firstName = $firstName; $this->lastName = $lastName; $this->email = $email; } public function getId(): string { return $this->id; } public function getFirstName(): string { return $this->firstName; } public function getLastName(): string { return $this->lastName; } public function getEmail(): string { return $this->email; } }
4. Pod adresem http://127.0.0.1:8000/api mamy już gotową dokumentację API wraz z możliwością wysyłania requestów.
Zalety
– szybkość
– nie powtarzanie tego samego kodu w wielu miejscach
– jasna i przejrzysta dokumentacja z możliwością requestów
Jest to tylko bardzo krótki opis, gdyż API Platform posiada o wiele więcej możliwości. Są to między innymi:
– tworzenie, pobieranie, aktualizowanie i usuwanie zasobów (CRUD)
– walidacja danych
– stronicowanie
– filtrowanie
– hypermedia (JSON-LD, HAL)
– GraphQL
– Nagłówki CORS
– wsparcie dla JWT
Źródła: https://api-platform.com/docs
Autorem tekstu jest Piotr Smaruj.