Minggu, 29 Desember 2019

PHP Lumen Service Docs




Lumen adalah Micro-framework yang diciptakan pengembang Laravel untuk mengakomodasi kebutuhan developer yang ingin membuat aplikasi dalam skala lebih kecil dari Laravel. Karena banyak library yang dihilangkan dalam bundle source code, Lumen bisa dijadikan framework untuk membuat REST API.

Deskripsi
Saat ini API yang kita buat belum memiliki dokumentasi. Kita akan membuat dokumentasi
bagaimana cara mengakses API yang telah kita buat. Tujuan praktek ini adalah untuk:
1. Memahami pentingnya dokumentasi
2. Mampu membuat dokumentasi bagaimana cara mengakses API

Mempersiapkan Docs Generator
Untuk membuat docs generator kita akan menggunakan swagger-ui
(https://swagger.io/tools/swagger-ui/). Untuk membuatnya, silahkan ikuti langkah-langkah
dibawah ini:

1. Install swagger-php plugins.Di folder project. Pada terminal/CommandPrompt ketika command dibawah ini.

composer require zircote/swagger-php




2. Membuat artisan command file. Buat file
app/Console/Commands/SwaggerDocScanner.php




3. Buka file app/Console/Kernel.php, tambahkan code ini. Line 17.

4. Untuk menjalankan artisan command SwaggerDocScanner dan menggenerate docs,
pada terminal/CommandPrompt jalankan command dibawah. Command ini akan
membuat file public/swaggerdoc.json. Saat ini kalau dijalankan, command ini bakal error,
karena kita belum mendefiniskan anotasi docs nya.
php artisan swaggerdoc:scan




5. Untuk tampilan User Interface nya kita perlu mebuat file html di public folder. Buat file
public/api-docs.html, code nya seperti ini.

6. Run Lumen Server




7. Pada browser buka http://localhost:8000/api-docs.html

8. Selesai



Membuat Dokumentasi API (Get Request)
Kita akan membuat API dokumentasi untuk endpoint /register. Untuk membuat dokumentasi
API mengenai get Request, silahkan ikuti langkah-langkah dibawah ini:




1. Buka file app/Http/Controllers/Controller.php, tambahkan code ini. Line 7-21.




2. Buka file app/Http/Controllers/PublicController/PostsController.php, tambahkan code ini.
Line 14-28.

3. Pada terminal/CommandPrompt jalankan command di bawah ini. Setiap kali anda
mengubah anotasi docs, harus menjalankan command di bawah ini supaya bisa update docs nya.
php artisan swaggerdoc:scan




4. Pada browser buka http://localhost:8000/api-docs.html




5. Kalau anda click pada button GET, tampilanya seperti ini

6. SIlahkan anda melakukan Try it out.

7. Selesai



Membuat Dokumentasi API (Post Request)
Kita akan membuat API dokumentasi untuk endpoint /register. Untuk membuat dokumentasi
API mengenai Post Request, silahkan ikuti langkah-langkah dibawah ini:

1. Buka file app/Http/Controllers/AuthController.php, tambahkan code ini. Line
14-47.

2. Pada terminal/CommandPrompt jalankan command di bawah ini. Setiap kali anda
mengubah anotasi docs, harus menjalankan command di bawah ini supaya bisa update
docs nya.
php artisan swaggerdoc:scan




3. Pada browser buka http://localhost:8000/api-docs.html




4. Kalau anda click pada button POST, tampilanya seperti ini.

5. Silahkan anda melakukan Try it out.

6. Selesai

Jumat, 27 Desember 2019

PHP Lumen Client APP




Lumen adalah Micro-framework yang diciptakan pengembang Laravel untuk mengakomodasi kebutuhan developer yang ingin membuat aplikasi dalam skala lebih kecil dari Laravel. Karena banyak library yang dihilangkan dalam bundle source code, Lumen bisa dijadikan framework untuk membuat REST API.

Deskripsi
Kita akan membuat aplikasi (Client) yang bisa melakukan request ke Web Service (API)
menggunakan PHP Lumen. Tujuan praktek ini adalah untuk:
1. Memahami bagaimana mengakses cara Web Service (API) menggunakan PHP
2. Mampu implementasi membuat aplikasi (Client) yang bisa melakukan request ke Web
Service (API)

Sebelumnya kita membuat aplikasi Web Service menggunakan Lumen. Saat ini kita akan
membuat aplikasi yang bisa mengakses Web Service menggunakan Lumen (kita sebut dengan

aplikasi Client).


Aplikasi Lumen Service App Sebagai Web Service API
Untuk implementasi Lumen Client App, kita akan menggunakan aplikasi Web Service yang
sudah kita buat. Silahkan download dan jalan aplikasi Web Service API (dalam hal ini

LumenServiceApp) dengan post 8000.

Membuat Aplikasi Lumen
Untuk instalasi dan membuat project Lumen ada dua cara:

1. Via Lumen Installer
a. composer global require "laravel/lumen-installer"

b. lumen new [NAMA_PROJECT]

c. Contoh:
lumen new LumenClientApp


2. Via Composer Installer
a. composer create-project --prefer-dist laravel/lumen [NAMA_PROJECT]

b. Contoh:
composer create-project --prefer-dist laravel/lumen LumenClientApp

3. Untuk menjalankan script di no 1 atau no 2, komputer kita harus memiliki koneksi
internet




4. Ini adalah process yang dijalankan ketika script no 1 atau no 2 dijalankan.
Process ini adalah mendownload module-module yang dibutuhkan oleh Lumen.

5. Untuk menjalankan server nya silahkan jalankan script ini di terminal/command prompt

a. Pindah direktori ke folder aplikasi yang baru dibuat:
cd LumenClientApp

b. Jalan server: Kita akan menggunakan port 9000, port 8000 kita akan gunakan
untuk LumenServiceApp
php -S localhost:9000 -t public

c. Tampilan terminal ketika berhasil running




6. Silahkan buka http://localhost:9000 di browser

7. Selamat, anda berhasil!



Membuat Fungsi Untuk Mengakses Web Service JSON (Get Request)
Untuk membuat fungsi yang bisa mengakses Web Service JSON, silahkan ikuti
langkah-langkah dibawah ini:

1. Buka file routes/web.php, tambahkan code ini, line 18




2. Buat controller dengan nama app/Http/Controllers/PostsController.php, buat function
getRequestJson dengan code nya seperti ini.




3. Dilihat dari controller nya, kita akan menggunakan module view untuk menampilkan
dalam bentuk html. Secara default folder view ada di resourcers/views.
Sekarang buat file view dengan nama resources/views/posts/getRequestJson.php.
Untuk styling nya kita akan menggunakan bootstrap
(https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css). Code nya
seperti ini.




4. Buka halaman http://localhost:9000/posts/get-request-json di browser, tampilanya
seperti dibawah ini:

5. Selesai



Membuat Fungsi Untuk Mengakses Web Service XML (Get Request)
Untuk membuat fungsi yang bisa mengakses Web Service JSON, silahkan ikuti
langkah-langkah dibawah ini:

1. Buka file routes/web.php, tambahkan code ini, line 19




2. Buat controller dengan nama app/Http/Controllers/PostsController.php, buat function
getRequestXml dengan code nya seperti ini.




3. Dilihat dari controller nya, kita akan menggunakan module view untuk menampilkan
dalam bentuk html . Secara default folder view ada di resourcers/views.
Sekarang buat file view dengan nama resources/views/posts/getRequestXml.php. Untuk
styling nya kita akan menggunakan bootstrap
(https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css). Code nya
seperti ini.




4. Buka halaman http://localhost:9000/posts/get-request-xml di browser, tampilanya seperti
ini:

5. Selesai



Membuat Fungsi Untuk Mengakses Web Service JSON (Post Request)
Untuk membuat fungsi yang bisa mengakses Web Service JSON dengan method POST,
silahkan ikuti langkah-langkah dibawah ini:

1. Buka file routes/web.php, tambahkan code ini, line 20




2. Buat controller dengan nama app/Http/Controllers/PostsController.php, buat function
postRequestJson dengan code nya seperti  ini.




3. Dilihat dari controller nya, kita akan menggunakan module view untuk menampilkan
dalam bentuk html . Secara default folder view ada di resourcers/views.
Sekarang buat file view dengan nama resources/views/posts/postRequestJson.php.
Untuk styling nya kita akan menggunakan bootstrap
(https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css). Code nya
seperti ini.




4. Buka halaman http://localhost:9000/posts/post-request-json di browser, tampilanya
seperti ini:

5. Selesai

Minggu, 15 Desember 2019

PHP Lumen Upload Media




Lumen adalah Micro-framework yang diciptakan pengembang Laravel untuk mengakomodasi kebutuhan developer yang ingin membuat aplikasi dalam skala lebih kecil dari Laravel. Karena banyak library yang dihilangkan dalam bundle source code, Lumen bisa dijadikan framework untuk membuat REST API.

Deskripsi
Tutorial ini melanjutkan project dari tutorial sebelum nya dengan nama ‘PHP Lumen Resource
Relationship’. Pada tutorial ini kita akan membahas mengenai upload media. Tujuan praktek ini
adalah untuk:
1. Mampu implementasi upload media menggunakan Lumen
2. Mampu implementasi untuk menampilkan media


Prasyarat
Harus menyelesaikan dulu modul dengan judul ‘PHP Lumen Resource Relationship’.

Studi Kasus
Pada tutorial ini kita akan menambahkan fitur user profile. User profile ini digunakan untuk
menyimpan data profil user. User dan Profile mempunyai hubungan One-to-one Relationship.
Oleh karena itu kita harus membikin tabel baru dengan nama profiles. Dibawah ini adalah
kolom-kolom yang harus ada di table profiles:
1. id → increment id
2. user_id → foreign key untuk menghubungkan dengan tabel users
3. first_name → nama depan
4. last_name → nama belakang
5. summary → ringkasan profile
6. image → image profile

Membuat Table profiles
Untuk membuat table profiles, mari kita ikuti langkah-langkah berikut ini:
1. Membuat database migration dengan menjalankan command dibawah ini pada terminal:
php artisan make:migration create_profiles_table




2. Buka file database/migrations/...create_profiles_table.php, dan ubah menjadi seperti

ini.

3. Jalankan command dibawah ini pada terminal:
php artisan migrate

4. Selesai.



Membuat Model Profile
Untuk membuat model user, ikuti langkah-langkah dibawah ini:

1. Buat file baru dengan nama app/Models/Profile.php, codenya seperti ini.

2. Selesai.

Endpoint
Untuk fitur user profile kita akan menambahkan beberapa endpoint, yakni seperti ini:

Membuat Fungsi Create dan Update Profile
Untuk membuat fungsi create dan update profile, mari kita ikuti langkah-langkah dibawah ini.

1. Buka file routes/web.php, tambahkan code ini. Lihat line 27.




2. Buat file baru app/Http/Controllers/ProfilesController.php, code nya seperti ini.




3. Test fungsi create or update profiles menggunakan postman.

4. Selesai.

Membuat Fungsi Get Profile
Untuk membuat fungsi get profile, mari kita ikuti langkah-langkah dibawah ini.

1. Buka file routes/web.php, tambahkan code ini, simpan di paling bawah.




2. Buka file app/Http/Controllers/ProfilesController.php, tambahkan function show,
code nya seperti ini.




3. Test fungsi get profiles menggunakan postman.

4. Selesai.

Membuat Fungsi Get Image Profile
Untuk membuat fungsi get image profile, mari kita ikuti langkah-langkah dibawah ini.

1. Buka file routes/web.php, tambahkan code dibawah ini. Line 35.




2. Buka file app/Http/Controllers/ProfilesController.php, tambahkan fungsi image, code
nya seperti ini.




3. Test fungsi get image profiles menggunakan postman. Kalau image nya tidak ada
seperti ini.




4. Test fungsi get image profiles menggunakan postman. Kalau image nya ada seperti ini.

5. Selesai

Jumat, 06 Desember 2019

PHP Lumen Resource Relationship




Lumen adalah Micro-framework yang diciptakan pengembang Laravel untuk mengakomodasi kebutuhan developer yang ingin membuat aplikasi dalam skala lebih kecil dari Laravel. Karena banyak library yang dihilangkan dalam bundle source code, Lumen bisa dijadikan framework untuk membuat REST API.

Deskripsi
Tutorial ini melanjutkan project dari tutorial sebelum nya dengan nama ‘PHP Lumen
Authorization'. Pada tutorial ini kita akan menambahkan fitur relationship antara model (tabel).
Tujuan praktek ini adalah untuk:
1. Memahami konsep relationship
2. Mampu implementasi fitur relationship

Prasyarat
Harus menyelesaikan dulu modul dengan judul ‘PHP Lumen Authorization’.
Endpoint Untuk Public User
Untuk public user bisa melakukan Read All dan Read Detail. Untuk mengakomodir kebutuhan

ini kita akan membuat routes dan controller baru.

Menambahkan Fungsi Public Read

Untuk menambahkan fungsi public read all, mari kita ikuti langkah-langkah berikut ini:


1. Buka file routes/web.php, tambahkan code ini:




2. Buat file controller baru dengan nama
app/Http/Controllers/PublicController/PostsController.php, kemudian tambahkan code
ini:




3. Buka file app/Models/Post.php, tambahkan code ini sebelum penutup Class:




4. Buka file app/Models/User.php, tambahkan code ini sebelum penutup Class:




5. Buka url http://localhost:8000/public/posts?page=1 di postman:




6. Buka url http://localhost:8000/public/post/2 di postman:

7. Selesai.