Tutorial RESTFul Web Service Menggunakan Lumen Laravel Dan AngularJs (Client)
Tutorial RESTFul Web Service Menggunakan Lumen Laravel Dan AngularJs (Client)
Setelah
postingan sebelumnya (baca : http://nasrullah95wildan.blogspot.co.id/2017/09/tutorial-restful-web-service_3.html)
kita telah membuat server dengan lumen laravel, sekarang kita akan membuat area
client dengan AngularJS.
1. Kita telah membuat
server untuk operasi CRUD. Sekarang kta akan membuat area client yang akan
ditampilkan dalam bentuk html.
2.
Langkah awal, kita
harus menginstal CORS pada composer Laravel.
3.
Buka cmd, lalu ketikan
: composer required
“palanik/lumen-cors:dev-master”. Enter.
CORS (Cross-Origin
Resource Sharing) adalah protokol yang dibangun di atas HTTP untuk memungkinkan
Javascript pada halaman yang berasal dari satu situs untuk mengakses metode di
situs lain. CORS merupakan protokol penghubung antara browser dan web-service
yang memberitahu browser bahwa itu adalah "OK" untuk mengeksekusi
kode Javascript dari panggilan lintas domain.
4. Kemudian, kita harus download boostrap (http://getbootstrap.com/)
dan jquery.min.js (https://code.jquery.com/jquery-3.2.1.min.js)
. kedua hal ini digunakan untuk kita mendesain tampilan interface client.
Angular
adalah client framework. Secara konsep Angular tidak bisa berdiri sendiri.
Angular membutuhkan aplikasi lain untuk memasukkan ke database seperti lumen.
6. Setelah itu, kita buat
folder baru di dalam htdocs (xampp/htdocs/)
sebagai tampilan. Beri nama folder sister_angular.
Dalam hal ini, kita telah menginstal XAMPP.
7.
Unzip file Bootstrap yang kita download serta
pindahkan folder css dan js dari ke folder sister_angular.
Dan pindahkan pula file jquery.min.js
kedalamnya.
8.
Buat tingkatan folder
baru dengan nama app > lib >
angular. Kemudian pindahkan isi dari angular.zip
ke dalam folder angular.
9.
Sehingga folder akan
tersusun seperti berikut.
10.
Dan didalam folder
sister_angular, akan terdapat 3 folder.
11.
Setelah kita mengatur
struktur angular seperti diatas, langkah selanjutnya adalah membuat kode
program untuk menampilkan data di halaman client.
12.
Buat file baru dengan
nama app.js. Dan simpan di dalam
folder app/ . Isikan file tersebut
dengan kode program berikut :
var app = angular.module('employeeRecords', [])
.constant('API_URL', 'http://localhost:8100/');
|
· var
app = angular.module('employeeRecords', [])
= membuat modul AngularJS dan menugaskan objek variabel ke aplikasi. Semua file
AngularJS akan menjadi referensi aplikasi.
·
.constant('API_URL',
'http://localhost:8100/'); Mendefinisikan
variabel konstan dengan URL API.
· http://localhost:8100/
merupakan url dan port yang sebelumnya telah kita atur ketika pembuatan server.
13.
Kemudian kita akan
membuat file controller. File ini yang akan bertanggung jawab untuk
berinteraksi dengan API kita.
14.
Buat file baru /sister_angular/app/controllers/employees.js
Isikan
kode program berikut pada file tersebut :
app.controller('employeesController',
function($scope, $http, API_URL) {
//Ambil daftar
karyawan dari API
$http.get(API_URL +
"api/wildan")
.then(function(response) {
$scope.employees =
response.data;
});
//menampilkan
model form
$scope.toggle = function(modalstate, id)
{
$scope.modalstate = modalstate;
switch (modalstate) {
case 'add':
$scope.form_title =
"Tambah Pegawai";
break;
case 'edit':
$scope.form_title =
"Detail Pegawai";
$scope.id = id;
$http.get(API_URL + 'api/wildan/'
+ id)
.then(function(response) {
console.log(response);
$scope.employee =
response.data;
});
break;
default:
break;
}
console.log(id);
$('#myModal').modal('show');
}
//menyimpan
data baru / update data
$scope.save = function(modalstate, id) {
var url = API_URL +
"api/wildan";
//Tambahkan
id pegawai ke URL jika form edit
if (modalstate === 'edit'){
url += "/" + id;
$http({
method: 'PUT',
url: url,
data: $.param($scope.employee),
headers: {'Content-Type':
'application/x-www-form-urlencoded'}
}).then(function(response) {
console.log(response);
location.reload();
}).error(function(response) {
console.log(response);
alert('This is embarassing. An
error has occured. Please check the log for details');
});
}
$http({
method: 'POST',
url: url,
data: $.param($scope.employee),
headers: {'Content-Type':
'application/x-www-form-urlencoded'}
}).then(function(response) {
console.log(response);
location.reload();
}).error(function(response) {
console.log(response);
alert('This is embarassing. An
error has occured. Please check the log for details');
});
}
//delete data
$scope.confirmDelete = function(id) {
var isConfirmDelete = confirm('Apakah
anda yakin untuk menghapus?');
if (isConfirmDelete) {
$http({
method: 'DELETE',
url: API_URL + 'api/wildan/' +
id
}).
then(function(data) {
console.log(data);
location.reload();
}).
error(function(data) {
console.log(data);
alert('Unable to
delete');
});
} else {
return false;
}
}
});
|
15.
Langkah selanjutnya
adalah menampilkan data dari api rest menggunakan angularjs.
16.
Buat file baru di dalam
foler app/. Beri nama index.html.
Isikan
kode program berikut :
<!DOCTYPE
html>
<html
lang="en-US" ng-app="employeeRecords">
<head>
<title>Data
Pegawai</title>
<!-- Load Bootstrap CSS -->
<link
href="css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<h2 align='center'>Daftar
Pegawai</h2>
<div
ng-controller="employeesController">
<!-- Table-to-load-the-data
Part -->
<table
class="table">
<thead>
<tr>
<th>ID</th>
<th>Title</th>
<th>Content</th>
<th><button
id="btn-add" class="btn btn-primary btn-xs"
ng-click="toggle('add', 0)">Tambah
Pegawai</button></th>
</tr>
</thead>
<tbody>
<tr
ng-repeat="employee in employees">
<td>{{ employee.id }}</td>
<td>{{
employee.title }}</td>
<td>{{
employee.content }}</td>
<td>
<button
class="btn btn-default btn-xs btn-detail"
ng-click="toggle('edit', employee.id)">Edit</button>
<button class="btn
btn-danger btn-xs btn-delete"
ng-click="confirmDelete(employee.id)">Delete</button>
</td>
</tr>
</tbody>
</table>
<!-- End of Table-to-load-the-data
Part -->
<!-- Modal (Pop up when detail
button clicked) -->
<div class="modal
fade" id="myModal" tabindex="-1"
role="dialog" aria-labelledby="myModalLabel"
aria-hidden="true">
<div
class="modal-dialog">
<div
class="modal-content">
<div
class="modal-header">
<button
type="button" class="close"
data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">X</span></button>
<h4
class="modal-title"
id="myModalLabel">{{form_title}}</h4>
</div>
<div
class="modal-body">
<form
name="frmEmployees" class="form-horizontal"
novalidate="">
<div
class="form-group error">
<label
for="inputEmail3" class="col-sm-3
control-label">Title</label>
<div
class="col-sm-9">
<input type="text"
class="form-control has-error" id="title"
name="title" placeholder="Fulltitle"
value="{{title}}"
ng-model="employee.title" ng-required="true">
<span class="help-inline"
ng-show="frmEmployees.title.$invalid &&
frmEmployees.title.$touched">Title field is required</span>
</div>
</div>
<div
class="form-group">
<label
for="inputEmail3" class="col-sm-3
control-label">Content</label>
<div
class="col-sm-9">
<input type="text" class="form-control"
id="content" name="content"
placeholder="Content" value="{{content}}"
ng-model="employee.content" ng-required="true">
<span class="help-inline"
ng-show="frmEmployees.content.$invalid &&
frmEmployees.content.$touched">Valid Content field is
required</span>
</div>
</div>
</form>
</div>
<div
class="modal-footer">
<button
type="button" class="btn btn-primary"
id="btn-save" ng-click="save(modalstate, id)"
ng-disabled="frmEmployees.$invalid">Save changes</button>
</div>
</div>
</div>
</div>
</div>
<!-- Load Javascript Libraries
(AngularJS, JQuery, Bootstrap) -->
<script
src="app/lib/angular/angular.min.js"></script>
<script
src="js/jquery-3.2.1.min.js"></script>
<script
src="js/bootstrap.min.js"></script>
<!-- AngularJS Application Scripts
-->
<script
src="app/app.js"></script>
<script src="app/controllers/employee.js"></script>
</body>
</html>
|
· Kode program diatas,
kita gunakan untuk membuat sebuah tampilan HTML di halaman client.
· Kode tersebut digunakan
pula untuk menampilkan isi dari database dan memberikan hak kepada client untuk
melakukan operasi CRUD.
17.
Langkah terakhir adalah
menjalankannya. Buka broswser, ketikan di kolom url http://localhost/sister_angular
. Sehingga akan ditampilkan seperti berikut ini.
READ
CREATE
UPDATE
DELETE
Selesai J Alhamdulillah
Karya :
Wildan A Nasrullah
0 komentar:
Posting Komentar