Documentation

Rest API : Micro-Framework

Pusaka Framework dilengkapi dengan sebuah microframework Rest API. Sebuah framework sederhana yang bertugas untuk menangani request dari client dan menghasilkan response berupa json data.

Started

# Create Rest API File

Buat sebuah file :document_root:/pusakaframework/app/microservice/hello.php

lalu buat code seperti berikut :

<?php 

$app->get('world', function(){

    $response = [
        'hello', 'world'
    ];

    return $response;

});

lalu akses url di browser http://localhost/pusakaframework/api/hello/world

Handle Request

Untuk menghandle request data maka dapat dibuat code seperti berikut

# GET

<?php 
use Pusaka\Http\Request;

$app->get('world', function(){

    $response = [
        "id"    => Request::get('id'),
        "all"   => Request::get()
    ];

    return $response;

});

lalu akses url di browser http://localhost/pusakaframework/api/hello/world?id=1

# POST

<?php 
use Pusaka\Http\Request;

$app->post('world', function(){

    $response = [
        "id"    => Request::post('id'),
        "all"   => Request::post()
    ];

    return $response;

});

lalu coba menngunakan postman atau api client lain dengan url http://localhost/pusakaframework/api/post/world dan parameter sebagai berikut

Parameter Value
id 3

# FILE

<?php 
use Pusaka\Http\Request;

$app->post('world', function() {

        // empty parameter will return array data 
        // Request::file() 

        $response = [
            "image" => Request::file('image'),
            "all"   => Request::file()
        ];

        return $response;

    }

});

lalu coba menngunakan postman atau api client lain dengan url http://localhost/pusakaframework/app/microservice/api/hello.php/world dan parameter sebagai berikut

Parameter Value
image FileImage

tags : Config, Upload, FileUtils

Database

# Response Data from Database

<?php 
use Pusaka\Http\Request;
use Pusaka\Database\Manager;

$app->get('world', function() {

    $query = Manager::on('default')->builder();

    $query
        ->table('user')
        ->select('*');

    return $query;
});

tags : Database, QueryBuilder

Middleware

<?php 
use Pusaka\Http\Request;
use Pusaka\Database\Manager;

$app->get('world', ['middleware' => 'middlewarename'

    function() {

        $query = Manager::on('default')->builder();

        $query
            ->table('user')
            ->select('*');

        return $query;
    }

]);

tags : Middleware