Skip to content
/ CI4Rest Public

Advanced REST Controller yang dikembangkan untuk mempermudah dalam penerapan REST API

Notifications You must be signed in to change notification settings

ay4t/CI4Rest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI4Rest

Advanced REST Controller yang dikembangkan untuk mempermudah dalam penerapan REST API

HARAP DIPERHATIKAN:

  • Semua Pengaturan yang terdapat pada App.php bersifat GLOBAL untuk semua child class
  • Setiap pengaturan akan berlaku di semua controller yang menggunakan extends RestController sebagai pengaturan default.
  • Anda dapat override / replace pengaturan pada method atau controller anda masing-masing dengan pengaturan yang berbeda-beda
  • jika Anda ingin menerapkan pengaturan pada 1 child class termasuk semua method didalamnya, Anda dapat meletakkan pada __constructor
  • Semua pengaturan pada file config dapat Anda setting secara global tanpa edit config ini pada file .env Anda ( E.g: app.force_https = true )

Installation

menggunakan github repository dengan github token:

composer config minimum-stability dev ( ini optional jika anda ingin menginstall versi dev )
composer config repositories.CI4Rest vcs [email protected]:ay4t/CI4Rest.git
composer require ay4t/ci4rest:main-dev

Contoh Penggunaan

pastikan Controller anda sudah extends controller dengan RestController

class NamaController extends \Ay4t\Ci4rest\RestController

contoh penerapan pada method index controller anda. method index adalah method default yang diakses untuk GET request pada codeigniter 4

public function index()
{
    
    /** request harus melalui protocol https */
    $this->config->force_https  = true;

    /** menggunakan otentikasi JWT */
    $this->config->rest_auth    = 'JWT';

    /** untuk mengatur output format */
    $this->config->rest_default_format        = 'json';

    /** setting true secara otomatis mendapatkan token JWT yang baru */
    $this->use_JWT_refresh_token = true;

    /** filter khusus untuk method yang hanya diperbolehkan */
    $this->config->rest_allowed_method = ['get', 'post'];

    /** filter jika ingin menggunakan hanya akses dengan AJAX / X-Requested-With:XMLHttpRequest header */
    $this->config->rest_ajax_only = true;

    /** memberikan header response untuk CORS */
    $this->config->check_cors = true;

    /** untuk menambahkan limitter pada method ini */
    $this->limitMethod( $request_per_hour = 100 );
    
    /** untuk menambahkan response secara manual */
    $this->addResponse('some_response', 'some_value');

    /** untuk menambahkan response secara manual dengan array */
    $this->addResponse([
        'some_response2' => 'some_value2',
        'some_response3' => 'some_value3',
    ]);

    return parent::index();
}

contoh penerapan pada method create controller anda. method create adalah method default yang diakses untuk POST request pada codeigniter 4

public function create()
{
    /** menggunakan otentikasi JWT */
    $this->config->rest_auth    = 'JWT';

    /** setting true secara otomatis mendapatkan token JWT yang baru */
    $this->use_JWT_refresh_token = true;

    /** filter khusus untuk method yang hanya diperbolehkan */
    $this->config->rest_allowed_method = ['post'];

    /** filter jika ingin menggunakan hanya akses dengan AJAX / X-Requested-With:XMLHttpRequest header */
    $this->config->rest_ajax_only = true;

    /** memberikan header response untuk CORS */
    $this->config->check_cors = true;

    /** validate your form here */

    /** untuk menambahkan response secara manual dengan array */
    $this->addResponse([
        'some_response2' => 'some_value2',
        'some_response3' => 'some_value3',
    ]);

    return parent::create();
}

Issue

jika ada masalah atau ide lainnya silahkan submit dan diskusi dibagian Issue :) atau jika anda ingin ikut berkontribusi dan merasa ini membantu silahkan fork repository ini dan tambahkan perubahan kemudia submit PR.

About

Advanced REST Controller yang dikembangkan untuk mempermudah dalam penerapan REST API

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages