Kenapa Semart Api Skeleton Tidak Menggunakan Api Platform

Bagi teman-teman yang mengenal Api Platform pasti tau betapa powerful-nya tool ini. Sebuah platform untuk membangun aplikasi berbasis Api dengan menerapkan standard tinggi sesuai konsensus komunitas seperti OpenApi (Swagger), Hydra, HAL, Json Api, maupun GraphQL. Semua itu disupport dan dapat digunakan dengan sangat mudah tanpa perlu mengeluarkan effort yang besar.

Tidak hanya itu, tool ini juga mendukung semua RDBMS yang disupport oleh Doctrine, dan MongoDB atau ODM yang juga disupport oleh Doctrine. Masih belum cukup, Api Platform juga dipersenjatai dengan Admin Generator untuk React dan Vue. Sudah cukup? Belum lah… Karena tool ini masih memiliki Marcure Protocol untuk real-time update. Singkatnya, Api Platform adalah solusi komplit untuk membangun sebuah aplikasi dengan super cepat.

Pertanyaan muncul, kenapa Semart Api Skeleton tidak menggunakan Api Platform sebagai pondasinya? Berikut adalah argumentasi saya kenapa saya tidak menggunakannya.

Super Magic

Api Platform memang sangat powerful dan penuh dengan sentuhan “magis” karena untuk membuat sebuah Api yang mencakup CRUD kita cukup mendefinisikan entity (table) maka semuanya sudah jadi bahkan support sub resources. Karena sifatnya yang sangat over power itulah saya tidak menggunakannya, karena tujuan saya membuat Semart Api Skeleton adalah agar pemula yang belum kenal Symfony tidak terlalu sulit mencerna termasuk ketika harus melakukan kustomisasi yang ekstrim.

Untuk Pemula

Seperti yang sudah saya singgung di atas, Semart Api Skeleton memang ditujukan untuk pemula yang baru mengenal atau baru akan menggunakan Symfony sehingga saya berusaha untuk membuatnya semudah mungkin untuk digunakan dan dikembangkan.

Mengurasi Kompleksitas

Api Platform memang sangat powerful, namun ketika menangani kasus yang kompleks maka pengaturannya pun semakin kompleks sehingga sering terjebak pada abuse of functionality karena hampir semua konfigurasi Api Platform ada pada entity. Berbeda dengan Semart Api Skeleton, saya membuatnya lebih simpel sehingga banyak “hook point” yang bisa digunakan untuk melakukan kustomisasi dan tidak hanya terbatas pada entity.

Mungkin itu secuil alasan kenapa saya lebih memilih mengembangkan platform sendiri ketimbang menggunakan yang sudah ada. Saya pribadi sangat kagum dengan Api Platform dan kemudahan yang ditawarkan. Tapi saya bilang mudah kan karena saya sudah lama bermain dengan Symfony, belum tentu dengan Anda, bukan?

 

Leave a Reply