[Laravel 기본] 12. Request & Response

Laravel 홈페이지 업데이트 !! Logo가 3D로 업데이트!!!

라라벨 홈페이지가 이쁘게 업데이트 되었습니다. 2D Logo 에서 3D Logo 로 업데이트 되었는데 개인적으로 너무 마음에 듭니다. 다만 홈페이지 리뉴얼도 좋은데 라라벨 Eloquent ORM 도 세심하게 업데이트해주면 좋겠습니다.

Application 의 핵심 Request 와 Response

이번 포스팅은 Laravel 에서 Request 와 Response 사용법에 대해 다룰려고 합니다. 라라벨에서는 이 둘 객체에 다양한 기능을 제공하여 사용자에게 편의성을 제공합니다.

Request

라라벨 Request 는 Symfony\Component\HttpFoundation\Request 를 상속받아 다양한 기능을 제공합니다. 또한, 라라벨 Global Middleware인 TrimStrings, ConvertEmptyStringsToNull 를 제공하여 Request에 전달되어 오는 값들을 Trim 하고, 빈 문자열인 경우 null로 변경시키기 때문에 쉽게 사용할 수 있습니다.

유용한 메소드들을 정리해보았습니다.

$request->path(); // url Path 접근
$request->url(); // 전체 url 접근
$request->method(); // HTTP Method 접근

$request->all(); // Request input 으로 넘어온 모든 값 array return
$request->input('name'); // input 중 key 값으로 찾아 해당 value return
$request->query('name); // Query String에 접근가능

// Dynamic Property
// request Payload 에서 우선 name를 찾고 없는 경우 route parameter 에서 찾음
// 사용하기 간편함
$request->name

$request->cookie('name'); // request 쿠키에 접근 가능하게 함
$request->file('name'); // Request로 넘어온 file를 다루기 쉽게함 

눈여겨 볼만한 것은 Dynamic Property 부분입니다. Request Payload 에서 우선 Property 를 찾은 뒤 없는 경우에는 route parameter 에서 검색하기 때문에 복잡하지 않은 요청의 경우에는 유용하게 사용할 수 있는 장점이 있습니다. 또한 코드의 길이 줄여 가독성 향상에 많은 도움을 줍니다.

HTTP Request 에 조회하고 싶은 부분이 있는 경우 Request 메소드들을 참조하여 사용하시면 됩니다.

Response

Http Response는 문자열, JSON, view, File 등 다양한 응답을 수행합니다. 라라벨에서는 어떻게 사용하는지 알아보겠습니다. 보통 라우트, 컨트롤러의 Closure 의 리턴 값으로 사용됩니다.

Route::get('/', function () {
    return 'HelloWorld'; // 문자열 응답
    return [1,2,3,4]; // array JSON 응답
    return view('home') // view home 응답
    
    // 특별한 응답을 수행하는 경우 직접 Response 객체를 사용
    return response('HellopWorld', 200); // 200 HTTP 상태코드 응답
    return response()->header('X-HI-HELLO', $value) // Response header 정보 추가
    return response()->cookie($name, $value, $minutes) // Response Cookie 추가
    return response()->view('name', $data, 200) // View 응답
    return response()->json($jsonDataArray) // JSON 응답
    return response()->download($pathToFile); // file 다운로드 응답 

    // Redirect 기능도 제공한다.
    return redirect('home') // 리다이렉트 to Home
    return redirect()->route('login'); // Route Redirecting
    return redirect()->away('https://laravel.com'); // External Redirecting
    return redirect()->action('HomeController@index'); // Controller Redirecting
});

TL; DR

  • Laravel 에서의 Request 와 Response 사용법에 대해 알아보았습니다.
  • Request, Response 에 필요한 메소드에 쉽게 접근가능하게 설계되었다. 필요하다면 찾아서 사용합니다.

최근 포스팅들에선 단순한 사용법 위주의 포스팅을 하니 자세히 다루기에는 내용 자체가 많이 없습니다. 글쓰는 재미가 사라지고 있습니다. 새삼 예제를 만드시면서 책을 쓰시는 분들이 존경스럽습니다.

이제 라라벨 사용법에 대한 내용은 라라벨 코리아와 라라벨 도큐먼트에게 맡겨두고 라라벨을 다루면서 생긴 문제에 대한 포스팅, 라라벨로 무언가를 만드는 포스팅, 하나의 주제에 대한 포스팅을 하려고 합니다. 라라벨 홈페이지도 업데이트 되었는데 필자도 포스팅을 업그레이드하여 재밌는 글을 작성할 수 있도록 더 노력하겠습니다. 🙂

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다