Przejdź do treści
Podobają Ci się nasze treści?
Sięgnij po unikalną wiedzę prosto od developerów i marketingowców. Zapisz się do newslettera.
CAPTCHA
Dziękujemy za zapisanie się do newslettera!
Aby otrzymywać najświeższe, branżowe informacje, potwierdź subskrypcję w mailu, który od nas dostałeś.
PS. Nawet tak ważne wiadomości lubią czasem pomylić folder, dlatego upewnij się, że mail nie trafił do SPAMU
Otwórz swoją skrzynkę e-mail

Czy warto korzystać z API Platform?

Kategoria: 
Data aktualizacji: 
Czas czytania
: 6 min

Czy naprawdę da się stworzyć dobre API w ciągu kilku dni? Twórcy API Platform przekonują, że tak. To obietnica idealna w świecie, w którym czas i budżet mają kluczowe znaczenie. Warto przyjrzeć się temu narzędziu z bliska – sprawdźmy, co oferuje, gdzie radzi sobie najlepiej i w jakich sytuacjach może nie spełnić oczekiwań.

Zalety korzystania z API Platform

API Platform – czym jest?

API Platform to framework do budowy nowoczesnych API w PHP, który automatyzuje tworzenie interfejsów RESTful i GraphQL. Powstał w 2015 roku z inicjatywy Kevina Dunglassa, eksperta od Symfony. Jego zadaniem było ułatwienie życia developerom, którzy sporo czasu w projektach poświęcali właśnie na pisanie interfejsów programowania. A to o tyle ważne, że obecnie aż 82% projektów przynajmniej częściowo bazuje na podejściu API-first. Wiemy to z raportu State of the API przygotowanego przez Postman w 2025 roku.

Framework w dużej mierze rozwiązuje ten problem. API Platform działa jako warstwa abstrakcji nad Symfony, która sprowadza budowę API do kilku prostych kroków. Wystarczy zdefiniować modele danych jako klasy PHP i dodać atrybuty. Następnie framework wygeneruje cały interfejs z operacjami CRUD, walidacją danych, systemem autoryzacji, paginacją, filtrowaniem, wsparciem dla formatów JSON-LD, Hydra oraz HAL, a nawet… gotową dokumentacją.

API Platform sprawdza się i w klasycznych aplikacjach monolitycznych (na przykład projektach single-page apps), i w systemach typu headless. Zapewnia też konfigurację pod Dockera oraz Kubernetes, co ułatwi deployment aplikacji w praktycznie każdym środowisku.

API Platform – najważniejsze cechy

Przed wykorzystaniem API Platform warto poznać charakterystykę frameworka. Poniżej najistotniejsze z nich.

Charakterystyczne cechy API Platform
  1. Świetne podstawy

    Cały framework opiera się na PHP 8.2+ i Symfony 7, czyli naprawdę solidnych fundamentach, biorąc pod uwagę stopień rozbudowania tego ekosystemu. Z kolei do zarządzania bazą danych korzysta z Doctrine ORM – kolejnej popularnej i mocno wspieranej biblioteki PHP, która ułatwia zarządzanie relacjami między encjami, upraszcza migracje schematów, a nawet dodaje lazy loading do obsługi zapytań do bazy.

    Sama architektura frameworka zmieniała się przez lata. Prawdpodobnie najważniejszą zmianą, która znacznie ułatwiła pracę developerom, było przejście na natywne atrybuty PHP wraz z pojawieniem się wersji 8.0 tego języka. W starszych wersjach platformy trzeba było definiować konfigurację API albo w osobnych plikach YAML, albo w komentarzach DocBlock. Problem w tym, że wszystkie IDE traktowały te konfiguracje jak zwykły tekst. Atrybuty PHP widzą je już jako kod, więc mogą np. wykrywać w nich błędy składniowe.

    Tak mogłaby wyglądać bardzo prosta implementacja API w najnowszej wersji API Platform:

    namespace App\Entity;
    use ApiPlatform\Metadata\ApiResource;
    use ApiPlatform\Metadata\Get;
    use ApiPlatform\Metadata\GetCollection; 
    use ApiPlatform\Metadata\Post;
    use Doctrine\ORM\Mapping as ORM;
    
    #[ORM\Entity]
    #[ApiResource(
       operations: [
           new GetCollection(),
           new Post(),          
           new Get(),           
        ]
    )]
    class Book
    {
       #[ORM\Id, ORM\Column, ORM\GeneratedValue]
       private ?int $id = null;
    
       #[ORM\Column]
       public ?string $title = null;
    

    I to w zasadzie wszystko – jeden plik wystarczy, aby API Platform automatycznie wygenerowało gotowy do użycia interfejs.

  2. Wsparcie dla GraphQL i REST jednocześnie

    Jedną z bardziej praktycznych zalet API Platform jest fakt, że nie musisz wybierać, czy stworzysz API w REST, czy w GraphQL – framework przygotuje oba interfejsy na podstawie tych samych encji PHP. Co prawda domyślnie robi to w REST, ale aby włączyć też GraphQL, wystarczy zainstalować jeden pakiet:

    composer require api-platform/graphql
    

    Cała logika API – filtry, zasady walidacji i autoryzacji zapytań – zadziała dokładnie tak samo w obu wersjach interfejsu.

  3. Gotowe generatory dla React, Vue i Next.js

    To nie wszystko, bo framework zapewnia też narzędzie – Create Client – do generowania prostych skryptów frontendowych pod Reacta, Next.js oraz Vue.

    Po zdefiniowaniu zasobów API generator analizuje jego strukturę i tworzy komponenty UI w TypeScript’cie, które da się później dowolnie zmodyfikować. Może to być np. formularz do edycji danych albo lista z paginacją. Dla projektów w React’cie i Next.js generator domyślnie korzysta z biblioteki React Admin, w przypadku Vue – z Nuxt.js.

    Create Client ma dosyć ograniczone możliwości. Przygotuje tylko wybrane, niezbyt skomplikowane komponenty (o czym możesz przeczytać w oficjalnej dokumentacji API Platform), ale np. przy budowie prostego panelu administracyjnego jak najbardziej również może się przydać.

  4. Aktualizacje w czasie rzeczywistym (Mercure)

    API Platform ma także wbudowaną integrację z protokołem Mercure, który pozwala wymieniać informacje między bazą danych a przeglądarką w czasie rzeczywistym. Jeśli dane się zmienią, na ekranie użytkownika będzie to widoczne po kilku sekundach. To dobra alternatywa dla protokołu WebSocket, który działa podobnie, ale wymaga więcej pracy przy konfiguracji. Dodatkowo, Mercure działa wg standardu Server-Sent Events, który dziś obsługuje każda przeglądarka bez konieczności instalowania dodatkowych bibliotek.

  5. Korzystne z punktu widzenia SEO

    Tak jak wspominaliśmy na początku, framework natywnie wspiera format JSON-LD oraz standard Hydra. To szczególnie ważne w kontekście tego, jak Twoją stronę lub aplikację będą widziały algorytmy wyszukiwarek.

    JSON-LD to format danych strukturalnych rekomendowany od dawna przez Google. Dzięki temu, że interfejs przygotowany w API Platform automatycznie zwraca dane właśnie w tym formacie, roboty wyszukiwarek są w stanie łatwo rozpoznać dany zasób: czy to produkt, artykuł, recenzja, czy np. wydarzenie. Na przykład odpowiedź API dla produktu mogłaby wyglądać tak:

    {
      "@context": "https://schema.org",
      "@type": "Product",
      "@id": "/api/products/123",
      "name": "Laptop Dell XPS 15",
      "description": "Wysokowydajny laptop z procesorem Intel i7",
      "price": {
        "@type": "Offer",
        "price": "5999.00",
        "priceCurrency": "PLN"
      },
      "brand": {
        "@type": "Brand",
        "name": "Dell"
      }
    }
    

    Wszystkie informacje są oznaczone zgodnie z wytycznymi schema.org, więc algorytm wie od razu, jak interpretować strukturę danych. To z kolei zwiększa szanse, że strona pojawi się w wynikach wyszukiwania wraz z tzw. rich snippets.

Kiedy warto (a kiedy nie) korzystać z API Platform?

Z naszego doświadczenia wiemy, że API Platform jest świetnym wyborem w projektach, które bazują na standardowych operacjach CRUD i wymagają wdrożenia funkcjonalnego API jak najszybciej. Obojętnie, czy budujesz aplikację headless, platformę e-commerce, własny system zarządzania treścią (CMS) czy aplikację SaaS – framework ten może naprawdę pomóc zaoszczędzić tygodnie pracy. A żeby lepiej zobrazować, dlaczego łatwiej budować interfejsy programowania z API Platform niż tylko „czystym” Symfony, poniżej znajdziesz krótką tabelę.

 SymfonyAPI Platform
Tworzenie CRUDWymaga ręcznego pisania kontrolerów, serializerów, walidacji dla każdego endpointu.Generuje CRUD automatycznie na podstawie encji, wystarczy dodać atrybut #[ApiResource].
Dokumentacja APITrzeba ręcznie skonfigurować NelmioApiDocBundle i opisać każdy endpoint, a potem aktualizować po każdej większej zmianie w kodzie.Tworzy dokumentację automatycznie, według specyfikacji OpenAPI.
Paginacja/FiltryTrzeba zaimplementować od zera, ręcznie.Do dyspozycji mamy gotowe mechanizmy paginacji oraz filtry (np. #[ApiFilter(SearchFilter::class)]).
Próg wejściaŚredni, aby opanować podstawy samego Symfony. Developer, który dobrze zna jego środowisko, może od razu zabrać się za budowę API i ma pełną kontrolę nad każdym jego aspektem.Na początku wyższy, bo trzeba dobrze poznać konwencje i sposób działania frameworka. Za to potem tworzenie API staje się dużo łatwiejsze.

Czy są projekty, w których nie ma sensu korzystać z API Platform? Tak, jeśli ma służyć nie tyle do zarządzania zasobami przy pomocy CRUD, a wykonywania bardziej złożonych operacji biznesowych i przetwarzania danych. Świetnym przykładem byłby każdy system do przetwarzania płatności – choćby Stripe, który jest przecież „pakietem” kilku rozbudowanych API. Wtedy na pewno lepiej byłoby pracować od początku do końca na samym Symfony i własnych kontrolerach.

Ale większość projektów, w całości lub częściowo, da się uprościć z pomocą API Platform – bo nie ma przypadku w tym, że główny pakiet api-platform/core został pobrany z repozytorium Packagist… ponad 45 milionów razy.

Oceń wpis
4.7
Ocena: 4.8 Liczba głosów: 24

Dziękujemy za ocenę postu!

Mamy więcej darmowych treści. Nie rezygnuj z nich!
Technologie, SEO, marketing - newsletter z poradami, które od razu możesz wdrożyć! Prosto na Twoją skrzynkę. Za darmo i bez spam
CAPTCHA