가장 기본적인 라라벨 라우트는 URI와 클로저를 전달 받아, 라우팅을 정의하는 간단하고 쉽게 이해할 수 있는 방법을 제공합니다.
Route::get('foo', function () {
return 'Hello World';
});
모든 라라벨의 라우트는 route
디렉토리 안에 들어 있는 라우트 파일에 정의되어 있습니다. 이 파일들은 프레임워크에 의해서 자동으로 로드됩니다. routes/web.php
파일은 웹 인터페이스를 위한 라우트들을 정의합니다. 이 라우트들에는 세션 상태와 CSRF 보호와 같은 기능을 제공하는 web
미들웨어 그룹이 할당되어 있습니다. routes/api.php
안에 들어 있는 라우트들은 stateless 하고 api
미들웨어 그룹이 할당되어 있습니다.
대부분의 애플리케이션에서, 여러분은 routes/web.php
파일에 라우트를 정의하여 시작할 수 있습니다. routes/web.php
에 정의된 라우트는 브라우저를 통해서 유입되는 라우트 URL을 정의하는데 사용됩니다. 예를 들어 브라우저에서 http://your-app.test/user
와 같이 접속하기 위해서 다음의 라우트를 정의할 수 있습니다.
Route::get('/user', 'UserController@index');
routes/api.php 파일은 RouteServiceProvider의 라우트 그룹안에 중첩되어 정의되어 있습니다. 이 그룹을에 의해서 /api URI가 자동으로 앞에 붙게 되므로, 이 파일에 정의한 모든 라우트에 일일이 적용하지 않아도 됩니다. RouteServiceProvider 파일의 라우트 그룹 옵션을 수정하면, 다른 prefix를 붙일 수도 있습니다.
라우터는 다음의 HTTP 메소드에 해당하는 응답을 위한 라우트를 등록할 수 있습니다.
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
때로는 여러개의 HTTP 메소드에 응답하는 라우트를 등록해야 할 수도 있습니다. 이경우 match 메소드를 사용하면 됩니다. 또는 any 메소드를 사용하여 모든 HTTP 메소드에 응답하는 라우트를 등록할 수도 있습니다.
Route::match(['get', 'post'], '/', function () {
//
});
Route::any('/', function () {
//
});
web 라우트 파일 안에 정의된 POST, PUT 또는 DELETE 를 가리키는 라우트들은 모두 CSRF 토큰 필드를 포함해야 합니다. 그렇지 않으면, 이 request들은 거부될 것입니다. CSRF 보호에 대해서 더 알아보려면 CSRF 문서를 읽어보십시오.