May 15, 2016

Membuat REST API Dengan CodeIgniter

2 comments :
Membuat REST API dengan PHP khususnya framework CodeIgniter sangat mudah dan cepat. Pada tutorial kali ini saya akan membahas pembuatan dasar nya terlebih dahulu. Sebelum memulai, persiapkan terlebih dahulu:

- Telah menggunakan dan memahami Codeigniter
- Web Browser Chrome dengan Plugin Postman
- CodeIgniter versi 3.0.6

1. Persiapkan CodeIgniter 3.0.6
Saat tulisan ini dibuat saya menggunakan versi terbaru CodeIgniter yaitu 3.0.6. Ektrak dan letakkan pada webserver kalian dengan nama ci-restserver.

2. Download Plugin CodeIgniter-RestServer
Untuk memudahkan membuat Rest API di CodeIgniter kita dapat menggunakan library buatan Chris Kacerguis di halaman githubnya

Setelah di download dari link github diatas copy tiap file berikut ke dalam folder didalam project CodeIgniter kalian:
- application/libraries/Format.php
- application/libraries/REST_Controller.php
- application/config/rest.php
- application/language/english/rest_controller_lang.php

3. Memulai Koding
Buat terlebih dahulu file .htaccess didalam folder project ci-restserver yang berisi:
RewriteEngine on
RewriteCond $1 !^(index\.php|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

Lalu Buat controller baru di application/controllers/api.php yang berisi:
<?php defined('BASEPATH') OR exit('No direct script access allowed');

require APPPATH.'/libraries/REST_Controller.php';

class Api extends REST_Controller{
    function __construct(){
        parent::__construct();
    }

    function siswa_get(){
        $this->response('My first API response = GET METHOD');
    }

    function siswa_arr_get(){
        $siswa = array(
            1 => array('first'=>'rudi', 'last_name'=>'nur'),
            2 => array('first'=>'ani', 'last_name'=>'nuni')
        );
        $this->response($siswa);
    }

    function siswa_post(){
        $this->response('My first API response = POST METHOD');
    }

    function siswa_put(){
        $this->response('My first API response = PUT METHOD');
    }

    function siswa_delete(){
        $this->response('My first API response = DELETE METHOD');
    }

}

Penjelasan dari kode diatas:
Controller bernama api.php yang nantinya akan dipanggil melalui client (Mobile, Desktop atau Web) yang berisi 4 http method yaitu: GET, POST, PUT dan DELETE.

Dari tiap method yang dipanggil akan menampilkan pesan masing-masing yang berada di dalam response()

Untuk menerapkan HTTP saat controller dipanggil, berikan nama function yang diakhir dengan _httpMethod.

function siswa_get()
Merupakan function siswa yang dipanggil menggunakan method HTTP GET

function siswa_post()
Merupakan function siswa yang dipanggil menggunakan method HTTP POST

function siswa_put()
Merupakan function siswa yang dipanggil menggunakan method HTTP PUT

function siswa_delete()
Merupakan function siswa yang dipanggil menggunakan method HTTP DELETE

function siswa_arr_get()
Merupakan function siswa yang dipanggil menggunakan method HTTP GET dengan output JSON array

4. URL REST API
OK code sudah jadi dan url API CodeIgniter yang telah dibuat berada di:
http://localhost/ci-restserver/api/siswa

5. Memanggil REST API CodeIgniter
Setelah code diatas selesai langkah selanjutnya adalah memanggil API tsb melalui aplikasi client.

Bagi yang suka dengan perintah dasar/command line dapat menggunakan curl dengan perintah:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST http://localhost/ci-restserver/api/siswa

dan akan mendapatkan hasil:
"My first API response = POST METHOD"

Tulisan POST pada curl diatas dapat kalian ganti dengan method yang lain misalnya GET, PUT dan DELETE untuk mendapatkan response yang berbeda.

Bagi pengguna web browser Chrome dapat menggunakan Postman dengan melakukan install terlebih dahulu melalui Chrome Web Store dengan mengetikan di kotak pencarian.

Install, buka Postman dan ketikkan http://localhost/ci-restserver/api/siswa serta ganti dropdown menjadi GET dan tekan tombol Send. Akan tampil hasilnya seperti berikut


coba kembali dengan url http://localhost/ci-restserver/api/siswa_arr dengan method GET


akan tampil response dalam bentuk array sesuai dengan code yang telah kita tulis diatas. Untuk mencoba method lainnya dari REST API yang telah kita buat dapat kalian ganti url beserta methodnya didalam Postman.
Read More

January 12, 2015

Membuat Dynamic Web Project menggunakan Maven di Eclipse

No comments :

Maven merupakan sebuah tool yang powerful, dimana membantu kita dalam mengelola project yang berisi dependensi library, mempermudah proses build dan lainnya.

Di tulisan ini saya akan memberikan cara sederhana dalam membuat Dynamic Web Project dengan Maven yang sudah aktif di dalam Eclipse. Project yang terbentuk nantinya dapat di konversi ke project java lainnya seperi Spring MVC dll.

Yang dibutuhkan
- Eclipse EE (Kepler)
- Apache Tomcat 7
- JDK 1.7
- M2Eclipse Plugin

Pastikan
- Apache Tomcat sudah terinstall di PC kalian dan terpasang di Eclipse
- M2Eclipse Plugin sudah tersedia didalam Eclipse. Untuk memastikan klik Help - About Eclipse dan klik gambar logo Eclipse yang disertai m2 (gambar), nanti akan tampil versi M2E yang terinstall di Eclipse.

Langkah 1
Buat Maven Project dengan cara File -> New -> Maven Project

Langkah 2
Pilih default Workspace location

Langkah 3
Ketikkan maven-archetype-webapp pada kotak filter dan lanjutkan klik Next

Langkah 4
Isi setiap kotak dan klik Finish. Di bagian ini kita membuat Maven Project di dalam Eclipse

Langkah 5
Akan tampil susunan Project yang telah kita set namun dengan 1 pesan error yang berisi "The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path"


Untuk itu klik kanan di nama project dan pilih Properties, klik Targeted Runtimes dan cek listkan pada Apache Tomcat 7

Langkah 6
Maven Project kalian akan tampak seperti dibawah

Langkah 7
Lakukan build project dengan cara klik kanan di nama project -> Run As -> Maven Build

Pada kotak Goals ketikkan: clean install, cek Skip Tests dan klik Run untuk menjalankan

Akan terjadi proses build project Maven yang dapat dilihat pada console

Langkah 8
Deploy aplikasi Maven ke dalam Apache Tomcat dengan cara klik kanan pada server -> Add and Remove -> pilih RizupzMavenTutorial -> Finish dan kemudian aktifkan tomcat.

Buka web browser dan ketikan http://localhost:8080/RizupzMavenTutorial

Read More

January 5, 2015

Memperbaiki HAX is not working di Android Studio

No comments :

Bagi yang baru pertama kali install dan menjalankan aplikasi melalui Android Studio akan tampil pesan "HAX is not working and emulator runs in emulation mode"

Jika kalian mengalami hal serupa ada solusinya:

Buka AVD Manager dengan klik Tools -> Android -> AVD Manager

Lalu pilih Virtual Device yang kalian gunakan. Dalam contoh ini virtual device saya adalah Nexus 5 API 21 x86. Klik logo pensil disisi kanan.


Nanti akan tampil Virtual Device Configuration. Klik Show Advanced Settings yang berada di kiri bawah.

Geser kebawah dan cari kata RAM yang berisi 1536 MB

Dan ganti menjadi 1000 MB

Klik tombol Finish dan akan ada proses update, tunggu hingga selesai.

Dan kemudian jalankan kembali Nexus 5 API 21 x86 dengan menekan tombol Play yang berada disisi kanan AVD.

Happ... Emulator berjalan dengan normal dan tidak ada pesan "HAX is not working and emulator runs in emulation mode" kembali namun akan tampil "HAX is working and emulator runs in fast virt mode"

Kenapa bisa tampil pesan "HAX is not working and emulator runs in emulation mode" dan emulator tidak berjalan normal?

Saat pertama kali kita melakukan install Android Studio kita juga melakukan proses instalasi HAXM yang merupakan driver intel sebagai emulasi untuk emulator Android di prosesor Intel. Secara default HAXM diset ke penggunaan Ram sebesar 1 GB atau 1024 MB.

Ketika sebuah Android Virtual Device terbentuk untuk Nexus 5 diatas secara default telah diberikan nilai lebih tinggi dari HAXM yaitu 1536 MB sehingga tampilah pesan "HAX is not working and emulator runs in emulation mode". Agar HAXM dapat berjalan dengan lancar maka diturunkan nilai di AVD menjadi 1000 MB.

Referensi: Stackoverflow
Read More

August 27, 2014

Menggunakan Jackson di Apache CXF - JAX-RS

No comments :
Ada 2 format JSON yang dapat digunakan oleh Apache CXF yaitu Jettison dan Jackson. Namun secara default Apache CXF hanya menggunakan Jettison. Untuk mengganti ke Jackson diperlukan tambahan parameter di beans.xml.

Jettison JSON format:
{ "error" : { code: "CODE", reason: "REASON } }

Jackson JSON format:
{ code: "CODE", reason: "REASON" }

Akan saya jelaskan bagaimana menggunakan Jackson daripada Jettison. Berikut tahapannya:

1. Menggunakan Maven
Jika kalian menggunakan Maven, maka Jackson harus ditambahkan ke dalam classpath dan menambahkan di dalam file pom.xml:
<dependency>
   <groupid>org.codehaus.jackson</groupid>
   <artifactid>jackson-jaxrs</artifactid>
   <version>1.9.0</version>
</dependency>

2. Tidak menggunakan Maven
Download Jackson dari Github (di tulisan ini saya menggunakan versi 1.9.11)
Lalu ekstrak zip yang telah di download, kemudian copy jackson-all-1.9.11.jar ke dalam folder lib di project kalian yang berada di dalam folder Project/WebContent/WEB-INF/lib

3. Melanjutkan kedua point diatas
Setelah melakukan dari salah satu point diatas, buka file cxf-beans.xml atau beans.xml yang berada di dalam folder Project/WebContent/WEB-INF/ dan tambahkan baris:
<jaxrs:providers>
    <ref bean="jsonProvider"></ref>
</jaxrs:providers>

<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" id="jsonProvider"></bean>

4. Selesai
Simpan file dan jalankan web service nanti akan dapat dilihat perubahan format JSON yang digunakan :)

referensi: arnavawasthi
Read More

August 25, 2014

Membuat web.xml yang tidak terbentuk oleh Eclipse

No comments :
Secara default saat kamu membuat Dynamic Web Project, file bernama web.xml tidak ada di dalam folder /WebContent/WEB-INF/.

Hal tersebut terjadi karena Dynamic Web Project di dalam eclipse menggunakan standar Java EE 6 dan Servlet 3. Sehingga tidak disertakan saat pembentukan project.

Jika kalian ingin membentuk web.xml dapat dilakukan dengan cara:

Klik kanan nama Project -> Java EE Tools -> Generate Deployment Descriptor Stub


Dengan demikian web.xml telah ada didalam project web kalian :)

Read More