질문을 삭제하지 말아주세요.!
 
1
0
-1

안녕하세요 질문충... 입니다;;

라라벨에서 API 를 만들기위해 라우트 폴더를 확인했는데

이전에는 그냥 web.php 이거 하나만 쓰고 있어서 다시 봤더니

api.php console.php web.php 이렇게 3개가 있더라구요

한글 메뉴얼에는 아래와같이 나와있어서 3개 파일을 어떻게 이용해야 할지 헷갈리네요;;


기본 라우트 파일

모든 라라벨의 라우트는 route 디렉토리 안에 들어 있는 라우트 파일에 정의되어 있습니다. 이 파일들은 프레임워크에 의해서 자동으로 로드됩니다. routes/web.php 파일은 웹 인터페이스를 위한 라우트들을 정의합니다. 이 라우트들에는 세션 상태와 CSRF 보호와 같은 기능을 제공하는 web 미들웨어 그룹이 할당되어 있습니다. routes/api.php 안에 들어 있는 라우트들은 stateless 하고 api 미들웨어 그룹이 할당되어 있습니다.


감사합니다.

    CommentAdd your comment...

    2 answers

    1.  
      1
      0
      -1

      routes/api.php 는 말그대로 api 용으로 사용하는 라우트입니다.

      RouteServiceProvider.php 의 mapApiRoutes() 메소드를 보면 routes/api.php 에 있는 모든 라우트는 prefix로 api 가 붙는걸 알 수 있습니다.

      /**
       * Define the "api" routes for the application.
       *
       * These routes are typically stateless.
       *
       * @return void
       */
      protected function mapApiRoutes()
      {
          Route::prefix('api')
               ->middleware('api')
               ->namespace($this->namespace)
               ->group(base_path('routes/api.php'));
      }

      그러므로 만약 routes/api.php 에 다음과 같이 라우트를 작성했다면 

      Route::middleware('auth:api')->get('/user', function (Request $request) {
          return $request->user();
      });

      외부에서 http://{YOUR_DOMAIN}/api/user 를 GET 으로 요청하여 현재 사용자의 정보를 받아갈 수 있습니다. 물론 auth:api 라는 미들웨어가 적용되어 있으므로 이를 통과하는 요청에 대해서만 사용자 정보를 줄 것입니다.


      routes/console.php 는 artisan 커맨드를 등록하는 파일입니다. routes/console.php 를 열어보면 다음과 같은 예제 코드가 들어있을 겁니다.

      Artisan::command('inspire', function () {
          $this->comment(Inspiring::quote());
      })->describe('Display an inspiring quote');


      이게 등록되어 있기 때문에 콘솔(혹은 터미널)에서 php artisan inspire 라고 입력하면 Illuminate\Foundation\Inspiring 클래스의 quote() 메소드가 실행된 결과가 터미널에 출력되는 것입니다. 이 부분은 https://laravel.kr/docs/5.4/artisan 을 읽어보시면 도움이 되실겁니다.

        CommentAdd your comment...