Lewati ke konten utama

Pengenalan API Platform

API Platform adalah framework open-source berbasis PHP yang dirancang untuk membangun API modern dan scalable dengan cepat. Dibangun di atas Symfony, API Platform menyederhanakan pembuatan REST API, GraphQL API, serta sistem event-driven menggunakan asinkron.

Apa Itu API Platform?

API Platform menyediakan serangkaian komponen dan tools untuk:

  • Membuat RESTful API dan GraphQL API dengan sedikit atau tanpa penulisan kode tambahan.
  • Mendefinisikan resource hanya melalui PHP class (Entity) menggunakan anotasi, attributes, atau konfigurasi YAML/XML.
  • Otomatis menghasilkan dokumentasi API interaktif berbasis Swagger/OpenAPI.
  • Mendukung pagination, filtering, sorting, validation, dan serialization out-of-the-box.

Fitur Utama

Berikut adalah beberapa fitur utama dari API Platform:

  • CRUD Otomatis: Endpoint CRUD dibuat otomatis dari Entity.
  • OpenAPI dan Swagger UI: Dokumentasi API otomatis.
  • GraphQL: Support native untuk query dan mutation GraphQL.
  • JWT Authentication: Mudah mengaktifkan keamanan berbasis token.
  • API Testing: Integrasi mudah dengan PHPUnit dan Behat.
  • Data Persistance Layer: Berbasis Doctrine ORM.
  • Resource Metadata: Konfigurasi resource dapat dilakukan melalui PHP attributes, annotations, atau file konfigurasi.

Arsitektur

API Platform mendorong penggunaan arsitektur API-First dan Decoupled Systems. Arsitekturnya terdiri dari:

  • Server Side:

    • Symfony sebagai framework utama.
    • Doctrine ORM untuk database.
    • Varnish/HTTP Cache untuk optimasi kecepatan.
  • Client Side:

    • Admin Interface (dengan React dan Admin-on-Rest).
    • Progressive Web App (PWA) Generator.

Instalasi Singkat

Untuk memulai proyek baru menggunakan API Platform:

composer create-project api-platform/api-platform my-project
cd my-project
symfony server:start

Setelah server berjalan, Anda dapat mengakses:

  • Dokumentasi Swagger di http://localhost:8000/api

  • Endpoint API yang otomatis tersedia.

Contoh Definisi Resource

Contoh entity Book:

<?php

namespace App\Entity;

use ApiPlatform\Metadata\ApiResource;
use Doctrine\ORM\Mapping as ORM;

#[ORM\Entity]
#[ApiResource]
class Book
{
#[ORM\Id, ORM\GeneratedValue, ORM\Column]
private ?int $id = null;

#[ORM\Column]
private string $title;

#[ORM\Column]
private string $author;

// Getter dan Setter
}

Dengan definisi di atas, API Platform akan otomatis membuat:

  • GET /api/books

  • POST /api/books

  • GET /api/books/{id}

  • PUT /api/books/{id}

  • DELETE /api/books/{id}

tanpa perlu membuat controller secara manual.

Kapan Menggunakan API Platform?

API Platform cocok digunakan saat:

  • Membutuhkan pengembangan API dengan cepat.

  • Ingin mengikuti standar REST dan GraphQL.

  • Menginginkan dokumentasi otomatis.

  • Membutuhkan sistem API yang scalable dan secure.

Jika Anda sudah familiar dengan Symfony atau Doctrine, maka akan sangat mudah beradaptasi dengan API Platform.

Kesimpulan

API Platform mempercepat pengembangan API dengan cara yang modern, standar, dan scalable. Dengan fitur-fitur seperti auto-documentation, GraphQL support, dan integrasi dengan Symfony ecosystem, API Platform menjadi pilihan utama untuk membangun backend API masa kini.