2015-09-13 3 views
3

Я пытаюсь что-то выяснить. Большую часть времени, то, как я создаю RESTful API, делая что-то вроде этого:RESTful API с использованием Laravel с AngularJS

Маршрут:

Route::get('/news', '[email protected]'); 

Контроллер:

class NewsController extends Controller 
{ 
    public function show() 
    { 
     $news= News::all(); 

     return view('newsview', compact('news')); 
    } 
} 

клинка:

@foreach ($news as $n) 
<li> {{$n->title}} {{$n->author}}</li> 
@endforeach 

И теперь, я пытаюсь узнать AngularJS. Как я вижу некоторые учебные пособия в Интернете, они используют AngularJS как front-end и Laravel как back-end. И теперь я вижу, что-то вроде этого:

Маршрут:

Route::get('/news', '[email protected]'); 

Контроллер:

class NewsController extends Controller 
{ 
    public function show() 
    { 
     return News::all(); 
    } 
} 

HTML/JS:

<div ng-app="myApp" ng-controller="newsCtrl"> 

<ul> 
    <li ng-repeat="x in news"> 
    {{ x.title + ', ' + x.author }} 
    </li> 
</ul> 

</div> 

<script> 
var app = angular.module('myApp', []); 
app.controller('newsCtrl', function($scope, $http) { 
    $http.get("/news") 
    .success(function(response) {$scope.news = response.records;}); 
}); 
</script> 

В чем преимущество использования друг друга? Я действительно заинтересован в использовании AngularJS.

ответ

1

Использование AngularJS может помочь вам в создании относительно более богатого пользовательского интерфейса с одностраничными приложениями (SPA), которые пользователь может найти, возможно, более отзывчивым. Используя только Laravel/PHP, ваш клиент заметит перезагрузку страницы. С помощью AngularJS пользователю может не потребоваться покинуть текущую страницу. Это небольшое преимущество, на мой взгляд.

С другой стороны, использование AngularJS потребует изучения AngularJS. Кажется, вы уже заинтересованы, поэтому обучение будет забавным. У AngularJS может быть несколько более крутая кривая обучения, и тогда вы будете поддерживать кодовые базы Laravel и AngularJS (я имею в виду). Так что это небольшой недостаток.

Использование AngularJS может возникнуть соблазн использовать стратегию использования Laravel или любой инфраструктуры, которая предоставляет только интерфейсы RESTful и позволяет AngularJS заботиться обо всех представлениях пользовательского интерфейса. Если позже вы решите удалить зависимость от PHP и использовать Python, достаточно, вы можете - просто разрешить Python обслуживать конечные точки RESTful.

+0

Я согласен, в первую очередь, с первым. Клиенту всегда полезно сократить перезагрузку страницы. – FewFlyBy

1

Да идея настолько хороша, потому что в основном вы можете сохранить ваши htmls и backend отдельно (можно разместить fronend и серверные раздельные серверы) так что вы можете сосредоточиться только на том, что вы делаете html или laravel в одном времени. Другое дело, что сервер, на котором размещается бэкэнд, получает меньше трафика и обработки, потому что угловой будет выполнять некоторую обработку в браузере (если ваш не использующий API laravel должен обрабатывать файлы лезвий, вы можете уменьшить это с помощью API, поскольку привязка данных к html выполняется в стороне браузера) и производительность сервера остается высокой.

И вы можете поддерживать SPA (одностраничное приложение), которое отлично подходит для UX. так что пользователи будут любить это.

и есть несколько библиотек, которые написаны на Laravel, чтобы сделать REST API

вот один из популярных один. DINGO

1

В основном, когда вы следуете второму методу, вы отделяете свой интерфейс и бэкэнд. Ниже приведены преимущества этого метода -

  • Вы можете полностью сосредоточиться на логике, когда вы пишете API, и и при работе на внешнем интерфейсе, вы можете полностью сосредоточиться на пользовательском интерфейсе, не заботясь о логике бэкэнда.
  • И если вы решили сделать мобильное приложение для веб-сайта, вам не придется писать логику Бэкэнд отдельно. Вы можете использовать те же API-интерфейсы как для мобильного приложения, так и для веб-приложения.
  • Если вы решите внести некоторые изменения в логику бэкэнд. Будет намного проще обновлять веб-сайт, если у вас есть как пользовательский интерфейс, так и логика.

Laravel и AngularJS хорошо идут вместе. Удачи :)

Смежные вопросы