Cara Membuat REST API di Laravel #3 : Menampilkan Data dari Database - Halo teman-teman semuanya, diartikel sebelumnya kita sudh berhasil membuat insert atau input data ke database dengan REST API di Framework Laravel.
Pada artikel kali ini kita semua akan belajar bagaimana cara menampilkan data dari database dengan REST API dalam format JSON.
Langsung saja, silahkan teman-teman buka file PostsController.php
didalam folder app/Http/Controllers/api/v1 dan silahkan teman-teman ubah menjadi seperti berikut ini :
<?php
namespace App\Http\Controllers\api\v1;
use App\Http\Controllers\Controller;
use App\Post;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class PostsController extends Controller
{
/**
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
*/
public function index()
{
$posts = Post::latest()->get();
return response([
'success' => true,
'message' => 'List Semua Posts',
'data' => $posts
], 200);
}
/**
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function store(Request $request)
{
//validate data
$validator = Validator::make($request->all(), [
'title' => 'required',
'content' => 'required',
],
[
'title.required' => 'Masukkan Title Post !',
'content.required' => 'Masukkan Content Post !',
]
);
if($validator->fails()) {
return response()->json([
'success' => false,
'message' => 'Silahkan Isi Bidang Yang Kosong',
'data' => $validator->errors()
],401);
} else {
$post = Post::create([
'title' => $request->input('title'),
'content' => $request->input('content')
]);
if ($post) {
return response()->json([
'success' => true,
'message' => 'Post Berhasil Disimpan!',
], 200);
} else {
return response()->json([
'success' => false,
'message' => 'Post Gagal Disimpan!',
], 401);
}
}
}
}
Dari perubahan PostsController.php
diatas, kita menambahkan 1 fungsi baru
dengan nama index
, fungsi ini akan kita gunakan untuk menampilkan data dari database berupa format JSON.
Sekarang silahkan teman-teman buka file api.php
di dalam folder routes, silahkan tambahkan kode berikut ini :
Route::get('/v1/posts', 'api\v1\PostsController@index');
Sekarang teman-teman bisa mencobanya langsung dengan Postman, silahkan masukkan http://localhost:8000/api/v1/posts/ pada bagian URL dan jangan lupa menggunakan method GET
.
Jika berhasil, teman-teman akan melihat response dengan format JSON kurang lebih seperti berikut ini :
{
"success": true,
"message": "List Semua Posts",
"data": [
{
"id": 2,
"title": "Test Post 2",
"content": "Test Content Post 2",
"created_at": "2020-02-02 03:47:11",
"updated_at": "2020-02-02 03:47:11"
},
{
"id": 1,
"title": "Test Post 1",
"content": "Test Content Post 1",
"created_at": "2020-02-02 03:46:51",
"updated_at": "2020-02-02 03:46:51"
}
]
}
Atau kurang lebih seperti gambar dibawah ini :
Oke, sampai disini pembahasan tentang menampilkan data dari database dengan REST API di Framework Laravel.
Di artikel selanjutnya kita semua akan belajar menampilkan data berdasarkan ID, atau detail data berdasarkan ID.
Terima Kasih