Belajar Laravel : Memahami HTTP Requests & HTTP Responses

Muhammad Ibrahim
Sep 5, 2018 · 5 min read

Sahabat Codingers.. sebelum kita memulai alangkah baiknya gita membaca Bismillah .. Ok, ditulisan yang sederhana ini namun insyaallah membawa manfaat untuk kita semua. Disini gua akan melanjutkan tulisan dari postingan kemarin yang ber judul Belajar Laravel : Installation, Configuration & Running Laravel, kalau diantara kalian ada yang belum membacanya silahkan dibaca terlebih dahulu agar tidak kebingungan di pembahasan ini.

Ok.., kita mulai langsung pembahasanya

Sebuah aplikasi web berkomunikasi dengan client melalui HTTP (Hypertext Transfer Protocol). HTTP, sebagai protokol yang berbicara menggunakan request dan response menjadikan aplikasi web bergantung kepada siklus ini untuk menghasilkan dokumen yang ingin diakses oleh pengguna. Secara umum, aplikasi web yang akan kita kembangkan harus memiliki satu cara untuk membaca HTTP Request dan mengembalikan HTTP Response ke pengguna.

  • HTTP Request yaitu dimana server membaca apa yang dikirimkan oleh client melalui aplikasi web server.
  • HTTP Response yaitu dimana server akan merespon permintaan yang telah dikirimkan oleh client.

1. HTTP Request Laravel

HTTP Request digunakan untuk mengambil field input atau string apapun dalam bentuk metode GET dan POST.

# Accessing The Request

Lalu bagaimana cara kita mendapatkan HTTP Request di Laravel ?

Caranya, cukup kita mendeklarasikan Illuminate\Http\Request ke dalam controller kalian. Contohnya seperti ini:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
/**
* Store a new user.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$name = $request->input('name');

//
}
}

Dependency Injection & Route Parameters

Jika controller method kalian juga mengharapkan masukan dari parameter route, kalian harus mencantumkan parameter route setelah dependensi lainnya. Misalnya, contoh route kalian didefinisikan seperti ini:

Route::put('user/{id}', 'UserController@update');

Accessing The Request Via Route Closures

Kita juga dapat mengetikkan class Illuminate \ Http \ Request, dengan menggunakan metode ini kita bisa langsung mendefinisikan fungsi dalam rute.

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {
//
});

Retrieving Request Path, URL & Method

Illuminate \ Http \ Request menyediakan berbagai metode untuk memeriksa permintaan HTTP untuk aplikasi Anda.

  1. Metode Path digunakan untuk mengambil URI yang diminta. Metode ini digunakan untuk mengambil URI yang diminta dan memverifikasi bahwa jalur permintaan masuk sesuai dengan pola yang diberikan.
  2. Metode url digunakan untuk mendapatkan url lengkap.
  3. Metode method akan mengembalikan HTTP untuk permintaan tersebut. Kita dapat menggunakan metode isMethod untuk memverifikasi apakah HTTP cocok dengan string yang ditentukan.

Agar tidak bingung dengan pembahasan Retrieving Request, mari kita coba praktikan di folder project blog kita yang kemarin.

Pertama kita harus membuat controller baru ..
ketikan code ini di Command Prompt atau Git Bash, disinih gua menggunakan Git bash: php artisan make:controller CobaController

nanti akan terbuat file baru, CobaController.php

Lalu buka file tersebut dan edit source seperti dibawah ini ..

selanjutnya kita tambahkan jalur route nya, buka file web.php yang berada di routes\web.php dan tambahkan Route::get(‘coba/bar’,’CobaController@index’);

Lalu jalankan php artisan serve


2. HTTP Response Laravel

Laravel menyediakan beberapa cara berbeda untuk mengembalikan respons. Responnya bisa dikirim baik dari route maupun controller. Semua route dan controller harus mengembalikan tanggapan untuk dikirim kembali ke pengguna.

# Creating Responses

Strings & Arrays

Respons paling dasar adalah mengembalikan string dari route dan controller. Ini secara otomatis akan mengkonversi string ke Http respon.

Route::get('response/', function () {
return 'Hello World';
});

Source diatas ditambahkan di web.php ,lalu di run ..

Selain mengembalikan string dari route dan controller, Kalian juga dapat mengembalikannya ke array. Secara otomatis laravel akan mengubah array menjadi respons json.

Route::get('response1/', function () {
return [1, 2, 3];
});

Source diatas ditambahkan di web.php ,lalu di run ..

Response Objects

Jika kalian ingin mengembalikan string atau array sederhana dari tindakan route. Kalian akan kembali ke contoh atau tampilan Illuminate / Http / Response secara penuh.

Route::get('home', function () {
return response('Hello World', 200)
->header('Content-Type', 'text/plain');
});

Source diatas ditambahkan di web.php ,lalu di run ..

Attaching Headers To Responses

Kita dapat menggunakan metode header untuk menambahkan serangkaian header ke respons sebelum mengirimnya kembali ke pengguna.

Route::get('Header', function () {
$content = 'Soild Coupon!';
$type = 'text/plain';
return response($content)
->header('Content-Type', $type)
->header('X-Header-One', 'Header Value')
->header('X-Header-Two', 'Header Value');
});

Source diatas ditambahkan di web.php ,lalu di run ..

Attaching Cookies To Responses

Metode ini memungkinkan kalian untuk dengan mudah melampirkan cookie ke respons. Kalian dapat menggunakan metode cookie untuk menghasilkan cookie dan dengan lancar melampirkannya ke contoh respons seperti:

Route::get('cookie', function () {
$content = 'Hello World';
$type = 'text/plain';
$minutes = 1;
return response($content)
->header('Content-Type', $type)
->cookie('name', 'value', $minutes);
});

Source diatas ditambahkan di web.php ,lalu di run ..

Cookies & Encryption

Laravel menghasilkan semua cookie yang dienkripsi dan ditandatangani sehingga tidak dapat diubah atau dibaca oleh klien. Jika Anda ingin menonaktifkan enkripsi, Anda dapat menggunakan properti $except dari App\Http\Middleware\EncryptCookies yang terletak di direktori app/Http/Middleware .

protected $except = [
'cookie_name',
];

Oke.. pembahasan singkat dalam Memahami HTTP Requests & HTTP Responses di Laravel cukup sampai disini, dan bagi kalian yg ingin mempelajarinya lebih dalam bisa buka reference yang gua lampirkan dibawah ini.

Terima Kasih, Salam Sahabat Codingers.. ^_^

Reference:


Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade