Minggu, 03 September 2017

Tutorial RESTFul Web Service Menggunakan Lumen Laravel Dan AngularJs (Server)

Tutorial RESTFul Web Service Menggunakan Lumen Laravel Dan AngularJs (Server)
Apa Itu Lumen ?
Lumen adalah sebuah Micro Framework yang dirancang khusus untuk kebutuhan Micro’s Services dan juga kebutuhan API. Karena framework ini bersifat micro, Taylor Otwell lebih mengedepankan soal kecepatan untuk akses data, bahkan pada website resminya Framework ini digadang-gadang sebagai salah satu yang tercepat dari 3 Micro Framework yang tersedia saat ini yaitu Silex dan juga Slim 3.

AngularJs ?
AngularJS adalah front-end framework untuk javascript yang dikembangkan oleh Google. Dengan fitur-fitur powerful dari AngularJS, proses development bisa menjadi jauh lebih singkat. Di sisi lain, organisasi kode Javascript menjadi lebih terstruktur dan “bersih” karena penggunaan framework ini mendorong penerapan pola MVC—ataupun MV-Whatever—pada aplikasi yang kita kembangkan.

Disini akan dijelaskan tutorial membuat RESTFul Web Service menggunakan Laravel Lumen dan AngularJS.

Server
1.      Download dan install Lumen Laravel via composer.
2.      Sebelumnya, kita buat folder baru di C: misalkan. Dalam tutorial ini, saya membuat folder baru, C:/Sister
3.   Kemudian buka cmd, dan ketikkan composer create-project laravel/lumen [nama_folder] - -prefer-dist. (misal : composer create-project laravel/lumen siter --prefer-dist). Dan tunggu hingga proses instalasi dan downloding selesai.
4.      Jika sudah selesai, kita ketikan di cmd seperti di bawah ini:
Dalam hal ini, kita mngatur port yang akan digunakan oleh server kita dalam menjalankan rest api. Tutorial ini menggunakan port 8100.
5.     Lalu, kita lakukan testing.
6.   Buka browser atau Postman, jalankan url http://localhost:8100/ . Jika berhasil, maka akan ditampilkan seperti berikut :
Hal ini menunjukan bahwa kita telah berhasil melakukan instalasi Lumen Laravel.
7.      Dari proses instalasi tersebut, maka akan terbentuk beberapa file pada folder yang sebelumnya kita buat.

8.      Kemudian, kita edit file app.php (bootstrap > app.php). Edit kode program menjadi seperti berikut.
Maksud dari tindakan ini adalah bahwa kita dapat mengaktifkan dan mengkonfigurasi hanya fitur yang kita butuhkan.
9.     Lumen mendukung konfigurasi .env. Ubah nama .env.example untuk .env dan hal ini digunakan untuk mengatur properti database yang benar untuk workspace kita.
APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomKey!!!

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=sister
DB_USERNAME=root
DB_PASSWORD=

CACHE_DRIVER=array
QUEUE_DRIVER=array
SESSION_DRIVER=array

Kegiatan ini digunakan untuk menyambungkan database. Dalam tutorial ini, database yang dibuat bernama sister pada MySQL. Lalu Klik Save.
10.      Langkah selanjutnya, kita membuat model dalam database kita dengan nama tabel yang diinginkan.
11.      Ketikan pada cmd,
artisan make:migration create_[namatabel]s_table --create=articles

 tutorial ini menggunakan nama tabel Tutorials. (Warning : setiap diakhir nama tabel selalu bumbuhi dengan huruf ‘s’).

12.      Lalu, buka Migration > pilih file hasil create tabel sebelumnya.
<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateTutorialsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
                        Schema::create('tutorials', function(Blueprint $table)
                        {
                                    $table->increments('id');
                                    $table->string('title');
                                    $table->string('content');
                                    $table->timestamps();
                        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('tutorials');
    }
}

Maksud dari kode program tersebut adalah, pada tabel tutorials (yang telah kita buat) memiliki 3 atribut yaitu id (dengan auto increment), title (tipe data string), dan content (tipe data string). Selain itu juga ada timestamps untuk mengisi kolom create_at dan update_at.
13.      Ketikan pada cmd,

php atisan migration
Hal ini kita membuat sebuah tabel, dan nantinya tabel yang telah terbuat akan di migrasikan ke database kita di MySQL.
     14.      Cek di phpmyadmin kita. Dan telah terbentuk 2 tabel, yaitu migrations dan tutorials.

    15.      Hal terakhir di bagian model adalah membuat file baru dengan nama sesuai nama tabel yang kita buat. Misalnya dalam tutorial ini nama tabel yang dibuat adalah tutorial, maka nama file baru yang kita buat beri nama Tutorial.
     16.      Isikan file tersebut dengan kode program berikut :
<?php namespace App;

 use Illuminate\Database\Eloquent\Model;
   class Tutorial extends Model
 {   
     protected $fillable = ['title', 'content'];
   
             }

Pada variabel $fillable, kita isikan array dengan nama-nama atribut tabel pada tabel Tutorial. Hal ini diperlukan untuk menetapkan properti ke objek langsung.
17.      Kemudian simpan di folder app/
18. Selanjutnya kita membuat file baru pada http/Controller/ [nama_file_baru]. Misalkan TutorialControllers.php
19.      isi dengan kode program berikut ini :
<?php

namespace App\Http\Controllers;

use App\Tutorial;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class TutorialController extends Controller{
 
    public function index(){
         $articles  = Tutorial::all(); //mengambil data dari database
         return response()->json($articles);
     }
     public function getArticle($id){
         $article  = Tutorial::find($id);
         return response()->json($article);
    }
     public function saveArticle(Request $request){
         $article = Tutorial::create($request->all());
         return response()->json($article);
     }
     public function deleteArticle($id){
        $article  = Tutorial::find($id);
         $article->delete();
         return response()->json('Berhasil di hapus');
    }
     public function updateArticle(Request $request,$id){
        $article  = Tutorial::find($id);
         $article->title = $request->input('title');
        $article->content = $request->input('content');
         $article->save();
         return response()->json($article);
    }
}
Kita menerapkan semua metode CRUD untuk kelas Tutorial dan mengembalikan objek dalam format Json. API sederhana ini bisa digunakan misalnya dalam aplikasi AngularJS (client).
20.      Bagian terakhir dari tutorial ini adalah tentang routing. Route di Lumen bekerja sama dengan Laravel. Kita bisa menempatkan middleware dan memanggil metode pengontrol. Buka folder app/Http/ [nama_file_baru_routes]. Misalkan routes.php
21.  Isikan file dengan kode program berikut :
<?php
$app->get('/', function () use ($app) {
    return $app->version();
});
$app->get('api/wildan','TutorialController@index');
$app->get('api/wildan/{id}','TutorialController@getArticle');
$app->post('api/wildan','TutorialController@saveArticle');
$app->put('api/wildan/{id}','TutorialController@updateArticle');
$app->delete('api/wildan/{id}','TutorialController@deleteArticle');
'api/wildan' adalah link url yang akan kita gunakan utnuk mengopeasikan rest api.
22. Testing. Buka Postman atau browser kita


Sekian tutorial untuk Server....
Tunggu postingan selanjutnya untuk tutorial Client-nya..
Selamat Mencoba


Karya     : Wildan A Nasrullah
Ref.        : https://www.codetutorial.io/lumen-first-tutorial/

1 komentar:

  1. ExpressTech Software Solutions is one of the best Laravel Development Company in India specialized in providing on demand striking web application development. Contact us : +91-9806724185 or Contact@expresstechsoftwares.com

    BalasHapus