Tutorial Laravel 11 RESTful API #5 Test Get User API

Belajar membuat RESTful API dengan Laravel 11 melalui tutorial step-by-step yang mudah dipahami. Laravel 11 menawarkan fitur terbaru dan lebih optimal untuk membangun API yang cepat, aman, dan scalable.

✅ Telah dilihat 1132 kali

Rating: 5.00 ⭐

... 12 March 2025, 16:05

Function Get User

Pada materi kali ini, kita akan membuat sebuah function yang bertujuan untuk mendapatkan detail data user yang sedang login. Pada API register sebelumnya, ketika user berhasil melakukan proses registrasi, maka secara otomatis akan mendapatkan tokenToken ini nantinya akan kita gunakan untuk mendapatkan detail data user. Silakan buka file AuthController.php, kemudian tambahkan function berikut ini:

public function getUser(Request $request)
    {
        return response()->json([
            'success' => true,
            'data' => $request->user(),
        ], 200);
    }

$request->user() Mengambil data user yang sedang terautentikasi berdasarkan token yang dikirimkan di header.

Sehingga secara keseluruhan, file AuthController.php saat ini akan tampak seperti berikut:

<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\Rules\Password;

class AuthController extends Controller
{
    public function register(Request $request)
    {
        // Validasi input
        $validator = Validator::make($request->all(), [
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users,email',
            'password' => ['required', 'confirmed', Password::defaults()],
        ]);

        if ($validator->fails()) {
            return response()->json([
                'success' => false,
                'message' => 'Validation errors occurred.',
                'errors' => $validator->errors(),
            ], 422);
        }

        try {
            // Buat user baru
            $user = User::create([
                'name' => $request->name,
                'email' => $request->email,
                'password' => Hash::make($request->password),
            ]);

            // Login user dan buat token
            Auth::login($user);
            $responseData = [
                'token' => $user->createToken($user->name)->plainTextToken,
                'name' => $user->name,
            ];

            // Kirim respons sukses
            return response()->json([
                'success' => true,
                'message' => 'User successfully registered.',
                'data' => $responseData,
            ], 201);
        } catch (\Exception $e) {
            // Tangani kesalahan server
            return response()->json([
                'success' => false,
                'message' => 'An error occurred during registration.',
                'errors' => ['server_error' => $e->getMessage()],
            ], 500);
        }
    }
    public function getUser(Request $request)
    {
        // Mengembalikan data pengguna yang sedang terotentikasi
        return response()->json([
            'success' => true,
            'data' => $request->user(),
        ], 200);
    }
}

Konfigurasi Rute Get User

Silakan buka file rute yakni api.php, kemudian ubah menjadi seperti berikut ini:

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\AuthController;

Route::middleware('auth:sanctum')->group(function () {
    Route::get('/user', [AuthController::class, 'getUser']);
});

Route::middleware('web')->group(function () {
    Route::post('register', [AuthController::class, 'register']);
});

Route::middleware('auth:sanctum') Menentukan bahwa rute dalam grup ini hanya bisa diakses oleh user yang telah login dan memiliki token autentikasi (middleware auth:sanctum).

Test API

Endpoint Methode
http://127.0.0.1:8000/api/user GET

Silakan buat request baru dengan nama request GET USER dengan menggunakan methode GET kemudian pada header silakan masukkan key dan value berikut ini:

Key Value
Accept application/json
Authorization Bearer (TOKEN YANG DIDAPAT SETELAH REGISTER)

Catatan:

  • Gantilah (TOKEN YANG DIDAPAT SETELAH REGISTER) dengan token autentikasi yang Anda terima saat proses register berhasil.
  • Dengan request ini, Kita akan mendapatkan detail data user yang sedang login dalam format JSON.

Terlihat kita sudah berhasil mendapatkan data user yang sudah teregistrasi dan mendapatkan token. pada materi berikutnya, kita akan menambahkan function Login dan Juga Log Out.

Daftar eBook