url 라우팅

K.Chang·2024년 6월 9일

라라벨/PHP

목록 보기
9/9

url 라우팅 개념

브라우저 주소창에 임의의 주소를 입력하면 원하는 페이지가 나오도록 처리하는 것

동작 방식 및 코드 작성 방법

  • RouteServiceProvider 라는 파일에서 routes/web.php와 api.php를 호출하며 시작
  • 일반적으로 페이지를 불러오는 코드는 web.php에, 외부에서 불러오는 REST API를 api.php에 설정




routes 디렉토리 파일

api.php

  • api 요청을 받아 controller 에 처리를 위임하여 데이터 처리 및 반환하기 위한 라우팅 모음
  • api.php에 설정하면 http://localhost/api/로 페이지가 호출
  • 해당 파일에 정의된 api들은 주소에 /api 입력 필수

web.php

  • 블레이드 템플릿을 반환하기 위한 라우팅 모음
  • web.php에 호출하면 http://localhost/로 호출

api 파일에서 라우팅 방법

  • 크게 http 메소드와 구현부를 정의
  • http 메소드 : get|post
  • 구현부 : 응답함수|작업을 전달할 컨트롤러와 함수
  • 클라이언트 요청 데이터 처리가 필요한 경우 Request 컨트롤러 사용
  • Request 컨트롤러를 서비스컨테이너 방식으로 개발자가 가공하여 DB에 저장하거나 출력하는 것이 백엔드 작업의 핵심
  • Route::get|post('연결 주소', '응답 함수'|'작업을 넘길 컨트롤러')
  • ex) Route::get('/new',function(Request $request){});
  • ex) Route::get('/new',[NewController::class],index);
Route::get('/test', function (Request $request){
	$data = $request ->input('name');
    return $data;
   });

URL 주소를 활용하는 법

  • 무조건 정해진 주소뿐만이 아니라 상황에 따라 다른 값을 주소로 받을 수 있다.
  • 이를 감지하기 위해서는 {} 대괄호를 사용
  • 대괄호의 수와 function 안의 괄호에 있는 변수의 수를 맞추어야 한다.
  • 제약을 걸수도 있다. 숫자만 또는 영어 알파벳일 경우를 가려낼 수 있다.
  • {} 대괄호를 통해 받는 값은 숫자, 알파벳, 한글 어떤 문자든 가능
  • 제약조건을 걸어 문자를 한정할 수 있다. =>whereNumber
  • 일단 다 받고 숫자가 아니면 실행을 취소
  • 블로그에서 발행되는 글처럼 같은 레이아웃의 페이지에 숫자만 다르게 받아서 각 숫자에 일치하는 글을 불러올 때 이 같은 라우팅 기법을 사용
  • 서비스 컨테이너가 넣어주는 컨트롤러와 함께 사용할 경우 반드시 컨트롤러 변수를 맨 앞에 배치. 그다음 대괄호와 연결된 변수를 배치
Route::get('/route/{first}/{second}', function ($first ,$second){ return "첫번째 인수 -".$first."두번째 인수-".$second;});
Route::get('/order/{number}',function ($number){return $number;})->whereNumber($number);
Route::get('/mix/{number}',function (Request $request, $number){ return $number;})->whereNumber($number);
profile
절차탁마 수정윤색

0개의 댓글