В борьбе за раздельный код в приложениях большого масштаба я применил угловой шаблон. Видно, что у меня не было такого большого опыта работы с Angular, как у меня с другими структурами Javascript. Мне хотелось бы получить некоторый вклад в этот метод.Использование конечных точек API для интерфейса API в AngularJS
При работе с конечными точками вещи могут стать действительно грязными, и код начинает повторяться ESP с помощью AngularJs. Работая над проектами других людей, я был болен видеть ...
$http({
method: 'GET',
url: '/posts'
}).then(function successCallback(response) {
// code
}, function errorCallback(response) {
// code
});
Поэтому я создать компонент, который в основном взаимодействует компонент HTTP, но применять наши текущие успокоительные стандарты на месте (обработка статуса HTTP правильно), области, локальное хранилище ect, в сочетании с методом реализации сервисов для интерфейсов конечных точек, которые строго описывают конечные точки и как они будут вписываться в приложение.
angular.module('Ripple').service('postModel', [function() {
'use strict';
return {
/**
* Rest Endpoint interface
* @type {Object}
*/
_rest: {
getPosts: {
url: 'http://localhost:3000/posts',
method: 'GET',
scopeUpdate: 'posts',
localStorage: false,
params: {
// Endpoint params
}
},
getPost: {
url: 'http://jsonplaceholder.typicode.com/posts/',
method: 'GET',
scopeUpdate: 'post',
localStorage: false,
pagination: false,
params: {
id: 1
}
},
getError: {
url: 'https://demo0079948.mockable.io/posts',
method: 'GET',
scopeUpdate: 'post',
localStorage: false,
pagination: false,
params: {
// none
}
},
},
/**
* Returns rest objects and allows to extend the params property
* @param {string} method
* @param {object} options
* @return {object}
*/
endPoint: function(endPointMethod, options) {
var defaults = this._rest[endPointMethod];
$.extend(defaults.params, options);
return defaults;
}
}
Использование с restHttpComponent
restHttpComponent.request(postModel.endPoint('getPosts', {
dateFrom: currentDate
}));
Можно ли увидеть любые негативы это делать?
Я не буду делать обзор кода для вас, но в принципе, это работает. Я также делаю то же самое, но я связываю свои методы, чтобы иметь возможность называть более глубокие конечные точки, например. 'service.one ('topic', 1) .one ('subject', 33) .get ('comment', 3)'. FYI, есть также Restangular, который делает то же самое и прост в использовании. – trichetriche
Выглядит хорошо, спасибо за отзыв –