Rest API using Play Framework in Java | Goodpixelpro Tutorial

Goodpixelpro Tutorial – Halooo . . .
Kali ini saya membuat tulisan mengenai Rest API menggunakan Play Framework khususnya java pada play framework

Sebelumnya, apa itu play framework?
Play Framework adalah framework open souce aplikasi web yang ditulis dengan Scala dan juga pemrograman lainnya seperti Java.
Biasanya pemrograman yang menggunakan java membutuhkan waktu untuk proses build dan deploy. Nah, dengan menggunakan framework ini, hasil coding tersebut hanya cukup kita save dan refresh browser atau postman untuk melihat hasil coding yang kita kerjakan.
Terkadang ada juga pemrograman yang menggunakan java harus restart server terlebih dahulu, padahal yang di edit hanya sedikit line code.

Typesafe Activator merupakan platform yang bisa digunakan untuk membuat dan menjalankan project play framework. Untuk download typesafe activator dapat di download pada link berikut: http://typesafe.com/activator
atau jika anda menggunakan mac, cukup gunakan perintah berikut pada terminal anda :
brew install typesafe-activator

Tanpa basa-basi kita create new project dulu ya . .

  1. Create new Project

    Pertama buka terminal terlebih dahulu, dan pergi ke direktori dimana kita akan create project baru kita
    Gambar 1
    Kemudian ketik perintah : activator new

    Gambar 2
    Maka akan muncul beberapa pilihan seperti gambar di atas (Gambar 2). dan kita akan memilih nomor 5
    Gambar 3
    Pada gambar diatas (Gambar 3) project sudah berhasil di create dengan nama project (play-java)
    Untuk menjalankannya : activator run
    Gambar 4
    untuk testing di postman atau di browser : //localhost:9000
    Gambar 5 Tampilan awal Play Framework
  2. Konfigurasi database
    Tambahkan code-code berikut pada file:

    Pada file build.sbt :

  3. Pada file plugins.sbt :
    Pada file application.conf :
  4. Models
    Selanjutnya kita akan membuat model
    package models; import com.avaje.ebean.Model; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table;  @Entity @Table(name = "anggota") public class Anggota extends Model { @Id  private Integer id_anggota;  private String nama_anggota;  private String alamat_anggota;   public Integer getId_anggota() { return id_anggota; } public void setId_anggota(Integer id_anggota) { this.id_anggota = id_anggota; } public String getNama_anggota() { return nama_anggota; } public void setNama_anggota(String nama_anggota) { this.nama_anggota = nama_anggota; } public String getAlamat_anggota() { return alamat_anggota; } public void setAlamat_anggota(String alamat_anggota) { this.alamat_anggota = alamat_anggota; } } 
  5. Controller
    Dan ini untuk controller
    package controllers; import repository.AnggotaRepository; import com.fasterxml.jackson.databind.JsonNode; import models.Anggota; import org.springframework.beans.factory.annotation.Autowired; import play.libs.Json; import play.mvc.Controller; import play.mvc.Result;  import java.util.List; public class AnggotaController extends Controller { @Autowired AnggotaRepository anggotaRepository;  public Result viewAnggota(String nama){ List anggotas = anggotaRepository.cocoTasks(nama); 
    return ok(Json.toJson(anggotas));
    } public Result listAnggota(){ List anggotas = anggotaRepository.cocoList();
    return ok(Json.toJson(anggotas));
    } public Result createAnggota() { JsonNode json = request().body().asJson();
    Anggota anggota = new Anggota();
    anggota = (Anggota)Json.fromJson(json,Anggota.class);
    anggota.save();
    return ok(Json.toJson(anggota));
    } public Result updateAnggota(){
    JsonNode json = request().body().asJson();
    Anggota anggota = new Anggota(); anggota = (Anggota)Json.fromJson(json, Anggota.class); anggota.update(); return ok(Json.toJson(anggota));
    } public Result delete(Integer id_anggota){ Anggota anggota = anggotaRepository.findById(id_anggota); if(anggota==null){ return notFound(Json.toJson("Anggota not Found")); } anggota.delete(); return ok(Json.toJson("Anggota "+id_anggota+"has been deleted")); } }
  6. Repository
    Dalam project sederhana ini, saya buat file repository. Dimana dalam file ini berisi query-query data yang saya gunakan
    package repository; import com.avaje.ebean.Model;import models.Anggota; import java.util.List; public class AnggotaRepository { public static Model.Finder, Anggota> find = new Model.Finder, Anggota>(Integer.class, Anggota.class);   public static List cocoTasks(String nama){ return find .query().where() .ilike("nama_anggota","{ebf6898650a24ceea6af16747880f1033f238f6dcc1ac67adae872c00d51563b}"+nama+"{ebf6898650a24ceea6af16747880f1033f238f6dcc1ac67adae872c00d51563b}") .orderBy("id_anggota").findList();  } public static List cocoList(){ return find.orderBy("id_anggota").findList();  } public static Anggota findById(Integer id_anggota){ return find.byId(id_anggota); } } 
  7. Mapping
    Action-action yang sudah kita code dalam controller dapat kita mapping. Untuk mapping dapat di kita lakukan pada file play-java/conf/routes
    # Routes # This file defines all application routes (Higher priority routes first) # ~~~~ # An example controller showing a sample home page GET / controllers.HomeController.index GET /anggota/nama_anggota=:nama_anggota controllers.AnggotaController.viewAnggota(nama_anggota:String) GET /list-anggota controllers.AnggotaController.listAnggota() POST /create-anggota controllers.AnggotaController.createAnggota() POST /update-anggota controllers.AnggotaController.updateAnggota() DELETE /delete-anggota/:id_anggota controllers.AnggotaController.delete(id_anggota:Integer) # An example controller showing how to use dependency injection GET /count controllers.CountController.count # An example controller showing how to write asynchronous code GET /message controllers.AsyncController.message # Map static resources from the /public folder to the /assets URL path GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
  8. Demo
    – Action Create
    Gambar 6. Action Create

    – Action View

    Gambar 7. List Anggota
    Gambar 8. search by nama anggota

    – Action Update

    Gambar 9. Action Update

    – Action Delete

    Gambar 10. Action Delete

    Begitu lah sharing singkat mengenai Rest API using Play Framework
    Sekian dari saya dan semoga tulisan ini bermanfaat.
    Terima kasih,

    Salam

    Reference :
    https://www.playframework.com/documentation/
    http://www.baeldung.com/rest-api-with-play
    https://www.youtube.com/watch?v=qKxgtmuPjHQ

Terimakasih telah berkunjung ke website Goodpixelpro. Semoga bermanfaat.!

There are no comments

Leave a Reply

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

Start typing and press Enter to search

Shopping Cart