Javalite RESTful Controller

Sama seperti framework lain yang berbasis mvc, controller merupakan sebuah class yang berperan penting untuk menerima dan mengembalikan request yang dilakukan oleh user. Pada javalite, controller terdapat pada framework activeweb, dan berperan juga sebagai route aplikasi yang akan kita buat.

Untuk membuat sebuah class sebagai controller pada javalite, caranya hanya dengan meng-extends class org.javalite.activeweb.AppController dan menyimpan class tersebut pada directory app.controllers seperti berikut :

package app.controllers;
import org.javalite.activeweb.AppController;

public class HomeController extends AppController {
   @GET
   public void index(){
      render().noLayout();
      respond("Hello world, selamat datang di home controller");
   }
}

Karena controller pada javalite berfungsi sebagai routing aplikasi, semua controller javalite dapat diakses dengan pola url

http://HOST:PORT/CONTEXT/CONTROLLER_NAME/{ACTION}/{ID}

Dengan pola tersebut, maka HomeController diatas dapat diakses sebagai url seperti berikut:

http://localhost:8080/home/index

HOST = localhost
PORT = 8080
CONTEXT = / (misal class HomeController berada di folder ‘master’, maka context = ‘/master’)
CONTROLLER_NAME = home
ACTION = index (action dengan nama ‘index’ bisa tidak dituliskan)

Pada controller diatas terdapat sebuah anotasi yang disimpan diatas sebuah aksi, anotasi tersebut menandakan HTTP Method yang digunakan pada aksi tersebut. Pada contoh diatas aksi index dapat diakses dengan method GET. Selain @GET method lain dapat di tulis dengan anotasi @POST, @DELETE, @PUT, @HEAD.

Lalu, bagaimana dengan RESTful controller?

Untuk membuat sebuah class menjadi RESTful controller pada javalite, caranya sama dengan membuat controller biasa seperti diatas, namun dengan tambahan sebuah anotasi @RESTful. Dengan menambah anotasi tersebut maka controller tersebut akan dikenal sebagai sebuah RESTful controller oleh javalite, dan dengan menambahkan anotasi tersebut juga, maka class tersebut harus harus memiliki satu set methods yang sudah ditentukan. Berikut contoh class RESTful controller:

package app.controllers;

import org.javalite.activeweb.AppController;
import org.javalite.activeweb.annotations.RESTful;

@RESTful
public class BookController extends AppController {
   public void index() { }
   public void newForm() { }
   public void create() { }
   public void show() { }
   public void editForm() { }
   public void update() { }
   public void destroy() { }
}

Pada RESTful controller, kita tidak perlu menuliskan Http method apa yang digunakan pada aksi yang ada dicontroller tersebut. Lalu, untuk mengakses RESTful controller diatas sebagai url dapat dijelaskan pada tabel berikut

HTTP Method Path Action
GET /book Index
GET /book/new_form
/book/new-form
newForm
POST /book create
GET /book/id show
GET /book/id/edit-form
/book/id/edit_form
editForm
PUT /book/id update
DELETE /book/id destroy

Diatas merupakan penjelasan singkat bagaimana membuat sebuah RESTful controller dan bagaimana mengakses RESTful controller di javalite. Selamat mencoba.