Membuat REST API mudah dan cepat dengan SLIM 4 php Microframework
Sampai saat ini sebenarnya aku masih menggunakan Slim 3, bukannya sudah terlanjur cinta. Tapi jujur saja aku sudah mager banget. Bahkan api servicenya sudah kayak gado-gado. Judulnya infobed, tapi isinya ada jadwal dokter hehe. Slim 3 sendiri sudah lama tidak dikembangkan. Karena sudah ada penerusnya, yaitu Slim 4. Biar kekinian aku mau mencoba menginstall slim 4. Lebih baik terlambat dari pada tidak sama sekali.
Sekilas tentang Slim 4
Slim 4 dirilis tahun 2019, dan sekarang sudah 2021. buat ukuran framework sebenarnya framework ini sudah old banget ya? bandingkan saja dengan framework sebelah yang sudah level eh versi 8. Tapi dia nggak sendiri kok. User YII malah masih pakai versi 2 hehe.
Sebenarnya buat programmer mager, masalah versi bukan issue utama. Justru kami lebih senang dengan yang jarang upgrade. Soalnya setiap rilis baru, bisa saja kan ada yang berubah di struktur frameworknya. Ntar diupdate bukannya lebih stabil, eh malah harus ketik ulang.
Slim 4 adalah framework mini yang digunakan untuk membuat service rest-api. Fungsinya cuma itu, jadi jangan berharap lebih. Kalau mau yang lebih pakai saja laravel atau code iginiter.
Dokumentasi SLIM 4
Yang aku suka dari slim adalah dokumentasinya yang sederhana dan lengkap. Eh emang dokumentasinya mau dibikin seberapa wong cuma buat dipakai bikin rest tok hahaha.
sobat bisa mengakses dokumentasi SLIM 4 pada link dibawah ini:
Slim 4 Documentation - Slim Framework
Instalasi SLIM 4
Langkah-langkah instalasi Slim 4 adalah begini:
1. Siapkan Komposer.
Sebelum menginstall Slim 4, sobat harus punya composer dulu. Kalau belum punya silahkan downlod dulu di:
Kalau yang pakai windows mending langsung download yang installer. Nggak usah sok-sokan pakai yang terminal kalau ujung-ujungnya copy paste.
2. Install SLIM
a. Buat folder baru untuk slim, misalnya rest-api
b. Buka folder rest-api di visual code lewat open folder
open folder visual code |
Masuk Folder source |
menu terminal |
2. Install SLIM 4
ketikkan magic word dibawah ini:
composer require slim/slim:"4.*"
tunggu sampai prosesnya selesai.
proses ini akan menciptakan file composer.json, composer.lock dan folder vendor beserta isinya.
3. Install implementasi PSR 7 dan server request creator
Sebelum menjalankan Slim 4, install dulu PSR 7, dikemudian hari kita akan sering menggunakan perintah-perintah dengan standart PSR 7.
Install PSR-7
composer require slim/psr7
composer require nyholm/psr7 nyholm/psr7-server
Guzzle PSR-7 dan Guzzle HTTP Factory
composer require guzzlehttp/psr7 http-interop/http-factory-guzzle
Lamina Diactoros
composer require laminas/laminas-diactoros
4. Buat files index.php di folder public
Untuk best practicenya sebaiknya sobat menggunakan standart terkini, yaitu dengan menempatkan aplikasinya di folder public. Duh semua kok jadi berasa kayak laravel. Bukannya niru laravel, tetapi standart keamanannya memang seperti itu.
Struktur file dan foldernya jadi seperti ini:
Langsung saja kopas kodingan dibawah ini ke file index.php:
<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
require __DIR__ . '/../vendor/autoload.php';
$app = AppFactory::create();
$app->get('/', function (Request $request, Response $response, $args) {
$response->getBody()->write("Hello world!");
return $response;
});
$app->run();
5. Test Service
Setelah selesai saatnya kita test servicenya. Buka browser kemudian masukkan alamat servicenya:
http://localhost/rest-api/public
dan lihat hasilnya, pasti error yang bunyinya seperti ini "Fatal error: Uncaught Slim\Exception\HttpNotFoundException: Not found. in bla bla bla".
Ternyata slim 4 tidak bisa berjalan di dalam subdirektory. Jadi harus di rootnya langsung.
Bagaimana cara mengatasinya?
dilansir dari blognya mas Rob Allens, tepatnya diartikel ini, Running Slim 4 in a subdirectory – Rob Allen's DevNotes (akrabat.com). Ternyata SLIM 4 bisa jalan di subdirektori.
Disitu dijelaskan penelusuran beliau, kalau disini aku langsung ke penyelesaian saja.
a. Buat file .htdocs di folder rest-api, lalu masukkan source ini
RewriteEngine On RewriteBase /rest-api/public/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ index.php [QSA,L]
b. Tambahkan $app->setBasePath(namafolder)
<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
require __DIR__ . '/../vendor/autoload.php';
$app = AppFactory::create();
$app->setBasePath('/rest-api/public');
$app->get('/', function (Request $request, Response $response, $args) {
$response->getBody()->write("Hello world!");
return $response;
});
$app->run();
Sekarang coba browsernya direfresh. Tralaaaaa
sudah nggak error |
Di SLIM 4, nggak cuma SLIM 4 sih, slim sebelumnya juga sama, sebuah alamat/end point api dibungkus didalam fungsi. Tepatnya dibarisan kode ini:
$app->get('/', function (Request $request, Response $response, $args) {
$response->getBody()->write("Hello world!");
return $response;
});
MEMBUAT SERVICE GET
Get Dengan end point selain root
$app->get('/',
function (Request $request, Response $response, $args) {
$app->get('/mobil',
function (Request $request, Response $response, $args) {
sekarang masuk ke browser dan masukkan alamat ini:
Get Dengan Parameter
"/endpoint/{parameter1}/{parameter2}/{parameter3}"
contoh sourcenya seperti ini:
hasil get dengan parameter |
MEMBUAT SERVICE POST
Untuk mengambil parameter-parameter posting, gunakan fungsi getParsedBody. hasil testing di postman seperti ini:
test post dengan slim 4 |
Selamat, sobat sudah membuat service rest-api sederhana.
No comments for "Membuat REST API mudah dan cepat dengan SLIM 4 php Microframework"
Post a Comment