Slim Framework 3: Router

slim-logoPada artikel sebelumnya, saya sudah membahas apa itu Slim Framework, instalasi slim versi 3, dan pembuatan program pertama. Kali ini, saya akan membahas tentang routing pada Slim Framework 3 yang dibangun berdasarkan komponen nikic/fastroute karena sangat cepat dan stabil.

Slim Framework 3 menyediakan beberapa jenis HTTP request method, diantaranya GET, POST, PUT, DELETE, OPTION, dan PATCH. Masing-masing request method dalam router memerlukan 2 argumen, yaitu route pattern dan route callback.

GET Route

Anda dapat menambahkan routing yang hanya menangani HTTP request GET dengan menggunakan method get(). Contohnya dapat dilihat di bawah ini:

$app = new \Slim\App();

$app->get('/',function($request, $response, $args){
    $response->write('Hello world');
    return $response;
});

$app->get('/buku/{id}',function($request, $response, $args){
    
    // menampilkan buku dengan id $args['id']
    
    return $response;
});

POST Route

Anda dapat menambahkan routing yang hanya menangani HTTP request POST dengan menggunakan method post(). Contohnya dapat dilihat di bawah ini:

$app->post('/buku', function($request,$response,$args){
    
    // buat buku baru
    
    return $response;
});

PUT Route

Anda dapat menambahkan routing yang hanya menangani HTTP request PUT dengan menggunakan method put(). Contohnya dapat dilihat di bawah ini:

$app->put('/buku/{id}',function($request,$response,$args) {
    
    // update buku dengan id $args['id']
    
    return $response;
});

DELETE Route

Anda dapat menambahkan routing yang hanya menangani HTTP request DELETE dengan menggunakan method delete(). Contohnya dapat dilihat di bawah ini:

$app->delete('/buku/{id}',function($request,$response,$args){
    
    // hapus buku dengan id $args['id']
    
    return $response;
});

OPTION Route

Anda dapat menambahkan routing yang hanya menangani HTTP request OPTION dengan menggunakan method options(). Contohnya dapat dilihat di bawah ini:

$app->options('/buku/{id}',function($req, $res, $args){
    
    // informasi response header
    
    return $res;
});

PATCH Route

Anda dapat menambahkan routing yang hanya menangani HTTP request PATCH dengan menggunakan method patch(). Contohnya dapat dilihat di bawah ini:

$app->patch('/buku/{id}',function($request,$response,$args){
    
    // menyimpan segala perubahan 
    // untuk buku dengan id = $args['id']
    
    return $response;
});

ANY Route

Any route digunakan apabila URL dapat menerima semua HTTP request, contoh kodenya di bawah ini:

$app->any('/buku/{id}',function($request,$response,$args){
    
    // menyimpan segala perubahan 
    // untuk buku dengan id = $args['id']
    
    // untuk mengecek method yang digunakan: 
    // $request->getMethod();
    
    return $response;
});

CUSTOM Route

Custom route digunakan apabila URL dapat menerima lebih dari 1 request method. Anda dapat menambahkan custom routing menggunakan method map().

$app->map(['GET', 'POST'], '/buku/{id}', 
          function($request, $response, $args){
    
    // tampilkan buku atau buat buku baru
    
    return $response;
});

GROUP Route

Slim Framework 3 menyediakan method group() untuk memudahkan pengelompokkan route. Contohnya di bawah ini:

$app->group('/buku', function () {

  $this->get('/{id}', 
             function($request,$response,$args){
    $response->write($args['id']);
    return $response;
  });
    
  $this->post('/',function($request,$response,$args){
    
    // buat buku baru
    
    return $response;
  }); 

  $this->put('/{id}',function($request,$response,$args){
   
   // menyimpan segala perubahan 
   // untuk buku dengan id = $args['id']
   
   return $response;
  });
});

Catatan: Dalam group, callback jangan menggunakan $app, gunakanlah $this.

Referensi: http://www.slimframework.com/docs/objects/router.html

You may also like

Leave a Reply

Your email address will not be published. Required fields are marked *