2016-09-15 9 views
0

У меня есть некоторые виды, которые возвращают данные моих моделей с toJSON().Laravel Route for JSON Response Views

Возможно ли использовать (используя 5.3) сделать их недоступными для обычных пользователей, но доступны для запросов AJAX?

Я видел, что есть файл api.php-маршрутов, но для них, похоже, нужны Middlerwares auth:api, и я не хочу, чтобы им нужен был api-ключ или что-то, потому что маршрут вызывается моей приложением сам используя twitter typeahead.

+0

Как вы определяете «нормальный пользователь»? –

ответ

2

Как @Mandeep Гилл уже упоминалось, вы можете проверить, если запрос приходит от AJAX:

function myFunction() { 
    if (!Request::ajax()) { 
     return; 
    } 

    // Include logic here and define data 
    $data = ''; 

    return response()->json($data, 200); 
} 

Однако, я хотел бы предложить вы должны создать частный API, который может использовать ваше приложение.

+0

Как говорит Гагжев, стоит отделить ваши маршруты и, возможно, даже контроллеры от конкретных пространств имен API. Это упростит обработку ваших запросов. – Spholt

+0

У вас есть начальная точка для частного API в laravel или короткий учебник? – Scarwolf

1

Где вы возвращаете обратный результат, как это:

if(\Request::ajax()) { 

    return \Response::make(["data" => $data]); // return what you likes 

} else { 

    return view('test'); // For normal view not ajax request. 

}