Kita lanjutkan tutorial kita tenang Laravel, dan masih membahas tentang : Membuat Rest API Menggunakan LARAVEL 9.0. Pada part kali ini kita akan membahas Controller , Routing dan Pengujian

Contents

Membuat Page API Controller

Untuk memulainya silahkan bikin Controller untuk Page nya dengan mengetikan perintah berikut

php artisan make:controller API/PageController --resource --api --model=Page

Edit Page Controller

Sekarang kita akan coba bikin result sederhana dengan menampilkan semua result dari page. Untuk itu silahkan teman teman semua masuk ke file \app\Http\Controllers\API\PageController.php. dan pada methot index silahkan rubah menjadi kode berikut.

public function index()
{
     $data = Page::all();
     return response()->json($data);
}

Menambahkan Route Untuk API PAGE

Untuk menambahkan route untuk api agar bisa di akses oleh public maka kita perlu mengedit file route untuk api yang letaknya di \routes\api.php . Jadi route untuk web dan api dibedakan didalam laravel. Silahkan tambahkan kode dibawah ini pada file tersebut.

Route::apiResource("pages",\App\Http\Controllers\API\PageController::class);

Untuk mengecek apakah api sudah siap atau belum , silahkan jalankan server dengan perintah

php artisan serve 

Pengujian API

Untuk pengujian api, salah satunya bisa kita akses menggunakan browser, selama method yang digunakan adalah get.Karena api yang kita bikin sebelumnya support untuk Get, jadi silahkan buka browser dan ketikan url dibawah ini ke dalam browser kita

http://127.0.0.1:8000/api/pages

Jika halaman tersebut bisa di akses walaupun tidak memberikat result apapun, tandanya api sudah bisa di gunakan. dan kenama tidak memberikan output, karena memang didalam database tersebut belum memiliki data apapun yang ditambahkan.

Sebelum kita membahas ke pokok bahasan selanjutnya, silahkan rekan rekan semua menginstall postman. Postman adal tools yang akan kita gunakan untuk pengujian api. Karena dengan postman kita bisa menguji api kita dengan berbagai method. Tidak seperti di web yang hanya digunakan untuk method Get saja.

Edit API URL

kalau kita amit, untuk mengakses url dari api tersebut adalah menggunakan url /api/ . Kita bisa mengcustom untuk url tersebut dengan mudah di laravel. Semisal kita ingin ganti menjadi /endpoint/ atau mungkin /api2/, atau bahkan kita ingin membuat 2 jenis endpoint api, kita juga bisa melakukanya di laravel.

Untuk menconfigurasinya, silahkan buka file \app\Providers\RouteServiceProvider.php , dan cari pada method boot. Maka secara default tampilan dari method bot adalah

public function boot()
{
	$this->configureRateLimiting();

	$this->routes(function () {
		Route::middleware('api')
			->prefix('api')
			->group(base_path('routes/api.php'));

		Route::middleware('web')
			->group(base_path('routes/web.php'));
	});
}

Untuk menggantinya silahkan edit pada bagian midlleware api dan diganti prefixnya sesudai dengan keinginan rekan2 semua. semisal ingin diganti menjadi endpoint, maka bisa diganti seperti dibawah ini

public function boot()
{
	$this->configureRateLimiting();

	$this->routes(function () {
		Route::middleware('api')
			->prefix('endpoint')
			->group(base_path('routes/api.php'));

		Route::middleware('web')
			->group(base_path('routes/web.php'));
	});
}

Jika teman teman ingin menambah 2 endpoint, rekan rekan bisa menduplicate untuk midleware apinya . contoh endpoint ke2 adalah apiV2

public function boot()
{
	$this->configureRateLimiting();

	$this->routes(function () {
		Route::middleware('api')
			->prefix('endpoint')
			->group(base_path('routes/api.php'));
	$this->routes(function () {
		Route::middleware('apiV2')
			->prefix('endpoint')
			->group(base_path('routes/apiV2.php'));

		Route::middleware('web')
			->group(base_path('routes/web.php'));
	});
}

Selanjutnya teman2 tinggal bikin file route baru di folder route dengan nama apiV2.php

Selanjutnya kita akan coba belajar mengkonfigurasi output dari api yang kita bikin.