Какова наилучшая практика выполнения CRUD-операций через REST с помощью AngularJS?
В частности, что такое Angular -Way. Под этим я подразумеваю способ использования наименьшего кода и большинства настроек по умолчанию angular.
Я знаю $resource и его по умолчанию. Где я не уверен, как реализовать/назвать конечные точки и какие контроллеры использовать.
В этом примере я хотел бы реализовать простую систему управления пользователями, которая создает/обновляет/удаляет/перечисляет пользователей. Поскольку я сам реализую серверные конечные точки, я совершенно свободен, делая это наиболее удобным способом angular.
Мне нравится как-то вроде:
Серверные Endpoints:
GET /service/users -> array of users
GET /service/user/new -> return an empty user with default values which has no id
POST /service/user/new -> store a new user and create an id. return the saved user.
POST /service/user/:ID -> save an existing user. Return the saved user
DELETE /service/user/:ID -> delete an existing user
Angular -Услуги:
.factory( 'User', [ '$resource', function( $resource ){
return $resource( '/service/user/:userId', { userId: '@id' } )
[...]
}])
Routing:
.when( '/users', {
templateUrl: BASE + 'partials/user-list.html',
controller: 'UserListCtrl' } )
.when( '/user/new', {
templateUrl: BASE + 'partials/user-edit.html',
controller: 'UserNewCtrl' } )
.when( '/user/:userId', {
templateUrl: BASE + 'partials/user-edit.html',
controller: 'UserEditCtrl' } )
...
Контроллеры:
UserListCtrl:
$scope.data = User.get(...)
UserNewCtrl:
$scope.user = User.get( { userId: "new" } )
...
Заметьте, что меня не интересует мнение, что является лучшим (tm) способом сделать это, но я хотел бы знать, что означает Angular (который, я думаю, должен создайте наименьший код, потому что он может использовать большинство настроек по умолчанию).
EDIT:
Я ищу всю картину. То, что я бы хотел, было бы ответом, например: "Вы можете сделать это, используя онлайн 3 Endpoints [...], 2 маршрута [...] и 2 контроллера [...], если вы сделаете это так, используя эти значения по умолчанию..."