Fungsi CRUD (Create, Read, Update, Delete) DI PHP Lumen #06



Tutorial ini melanjutkan artikel sebelumnya yaitu "Menggunkan Database dii Lumen Micro Framework #05". sebelum lanjut di artikel ini silahkan baca terlebih dahulu artikel tersebut agar praktikum di artikel bisa dijalankan.


Di artikel ini kita akan membuat service menggunakan PHP Lumen yang bisa melakukan aksi CRUD (Create, Read, Update, Delete) berdasarkan pada Restful API Design. 


Berikut poin-poin utama yang akan kita kerjakan, sebagai berikut :

  1. Mampu implementasi Restful API
  2. Memahami HTTP Verbs 
  3. Mampu membuat function CRUD (Create, Read, Update, Delete)


Endpoint

Dibawah ini adalah Endpoint yang akan implementasikan berdasarkan Restful API Design:

Method (HTTP Verbs)

Endpoint

Deskripsi

GET

/posts

Melihat semua daftar post

GET

/post/{postId}

Memfilter post yang ditentukan menggunakan id

POST

/posts

Membuat post baru

PUT

/post/{postId}

Update atau edit satu post sesui id

DELETE

/post/{postId}

Menghapus post satu post sesuai id



Fungsi Create dan Read

Buka file web.php pada folder routes dan tambahkan script dibawah routes method index yang telah dibuat sebelumnya seperti berikut.

            

Kemudian buka file PostController.php, dan tambahkan method baru bernama function store (line 21-287) yang berfungsi untuk update atau edit post.

1.   <?php  

2.     

3.   namespace App\Http\Controllers;  

4.     

5.   use App\Models\Post;  

6.   use Illuminate\Http\Request;  

7.     

8.   class PostsController extends Controller  

9.   {  

10.     public function index()  

11.     {  

12.         $posts = Post::OrderBy("id""DESC")->paginate(10);  

13.   

14.         $outPut = [  

15.             "message" => "posts",  

16.             "results" => $posts  

17.         ];  

18.   

19.         return response()->json($posts, 200);  

20.     }  

21.     public function store(Request $request)  

22.     {  

23.         $input = $request->all();  

24.         $post = Post::create($input);  

25.   

26.         return response()->json($post, 200);  

27.     }  

28. }  

            

Buka file pada direktori app/Models/ denga nama Post.php dan tambahkan code ini untuk untuk melakukan update field created_at dan updated_at secara otomatis.

1.   <?php  

2.     

3.   namespace App\Models;  

4.   use Illuminate\Database\Eloquent\Model;  

5.     

6.   class Post extends Model   

7.   {  

8.       // define coloum name  

9.       protected $fillable = array ('title''category''description''status','user_id');  

10.   

11.     // untuk melakukan update field created_At dan update_up secara otomatis  

12.     public $timestamps = true;  

13. }  

           

Lakukan testing menggunakan aplikasi postman. Pada sebelah kiri URL kita ganti terlebih dahulu method HTTP yang awalnya ‘GET’ diganti menggunakan method ‘POST’ karena kali ini akan mengirimkan data.


            

Untuk mengirimkan sebuah data, kita harus masuk ke tab body lalu pilih form data yang dimana form data ini adalah pasangan antara key dan value sesuai dengan database yanh telah kita buat.


Jika berhasil, respon akan berupa data yang kita masukkan.


Untuk menampilkan semua data, kita bisa kembali menggunakan method ‘GET’ seperti berikut.




           

Untuk dapa melihat post secara detail atau melihat post sesuai id post yang diinginkan dari setiap  data, Anda dapat mengikuti  langkah-langkah berikut.


Tambahkan routes untuk read detail pada file routes.php.

Buka File PostController, dan tambahkan script function show yang berfungsi untuk melihat post  sesuai id post, berikut adalah script nya.


1.   public function show($id)  

2.   {  

3.       $post = Post::find($id);  

4.     

5.       if(!$post) {  

6.           abort(404);  

7.       }  

8.     

9.       return response()->json($post, 200);  

10. }  

           

Pada fungsi read detail ini, kita harus mengirimkan sebuah parameter menggunakan post id. Lakukan test kembali menggunakan postman dengan menambahkan parameter berupa post id.


Read detail dengan endpoint post yang memiliki id 1, http://localhost:8000/post/1.




            

Untuk menerapkan fungsi update, agar dapat edit post. Anda dapat mengikuti langkah-langkah berikut.


Tambahkan routes untuk read detail pada file routes.php


Buka file PostsController.php dan tambahkan script function update yang berfungsi untuk edit post, berikut adalah scriptnya.

1.   public function update(Request $request, $id)  

2.   {  

3.       $input = $request->all();  

4.     

5.       $post = Post::find($id);  

6.     

7.       if(!$post) {  

8.           abort(404);  

9.       }  

10.   

11.     $post->fill($input);  

12.     $post->save();  

13.   

14.     return response()->json($post, 200);  

15. }  


Selanjutnya buka postman untuk melakukan test. Ubah method HTTP menjadi ‘PUT’.



Masukkan URL yang telah kita buat beserta parameter id yang akan diubah, kemudian, masuk ke tab x-www-form-urlencoded. Ketikkan key dan value yang ingin kita update.



Jika berhasil maka respon akan seperti berikut.




            

Tambahkan kembali routing untuk melakukan fungsi delete, seperti biasa disertai dengan parameter id yang akan kita delete.


Kemudian buka file PostsController.php dan tambahkan function destroy yang berfungsi untuk menghapus post sesuai id post , berikut adalah script nya.

1.   public function destroy($id)  

2.    {  

3.        $post = Post::find($id);  

4.     

5.        if(!$post) {  

6.            abort(404);  

7.        }  

8.        $post->delete();  

9.        $message = ['message' => 'deleted successfully''post_id' => $id];  

10.   

11.      return response()->json($message, 200);  

12.  }  


Untuk melakukan test di postman seperti biasa kita ubah terlebih dahulu method HTTP nya, kali ini menjadi ‘DELETE’.

Lalu masukkan URL nya beserta parameter id yang akan di delete. Disini penulis mencoba untuk menghapus post yang memiliki id dengan  endpoint sebagai berikut http://localhost:8000/post/2 Jika berhasil maka respon akan seperti berikut.



         

Sampai disini anda telah berhasil mencoba terkait implementasi RESTful API dengan method ‘POST’, ‘PUT, dan ‘DELETE’.  


0 komentar:

Posting Komentar