Должны ли веб-сервисы AngularJS возвращать полную копию ответа?

Мартин

У меня есть веб-служба с длительным опросом. Последний ответ кешируется. Веб-сервис уведомляет подписчиков о появлении новых данных.

Является ли хорошей практикой возвращать полную копию ответа или данные должны быть переданы всем подписчикам? Или это просто зависит от варианта использования?

Пер Хорнсхой-Ширбек

На первый взгляд, это похоже на тот случай, когда вам нужно шире взглянуть на использование.

Что предоставляет эта услуга. Это данные только для чтения или служба также отвечает за управление модификациями данных? После того, как вы ответите на этот вопрос, вам будет легче, поэтому посмотрите, как вы должны с этим справиться.

Но правда в том, что служба должна владеть данными, и ни один подписчик данных не должен иметь возможность вмешиваться в результат. Если подписчики должны только читать из данных, это должно быть принудительно, но даже если они хотят изменить данные, делать это непосредственно на самом объекте - действительно плохая практика, особенно / особенно потому, что есть много подписчиков на одни и те же данные.

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

Любые подписчики данных должны передать данные методу, ответственному за сохранение данных, как это service.SaveSomeInformation(responseInformation).

TL; DR Не делитесь ссылкой на данные с подписчиками, предоставьте каждому подписчику копию (подмножество) данных.

Удачи

Достоверный источник http://martinfowler.com/eaaCatalog/serviceLayer.html

Определяет границу приложения с уровнем сервисов, который устанавливает набор доступных операций и координирует реакцию приложения на каждую операцию.

а также

.... Он инкапсулирует бизнес-логику приложения, контролирует транзакции и координирует ответы при реализации его операций.

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

AngularJS - страница загружается до инициализации переменной области видимости

Простой холст в директиве angularjs

доступ к значению текстового поля angularjs в контроллере

AngularJS Печать Да или Нет на основе логического значения

Ошибка: не удалось найти хромированный драйвер, следуя официальному руководству angularjs

Формат входного значения в Angularjs

Таблица сортировки AngularJs для уже вставленных данных

Привязка / моделирование к определенному символу в строке в AngularJS

"текущий запрос не является составным" angularjs и весенняя загрузка

AngularJS: тайм-аут не работает

AngularJS: получить свойство объекта в массиве, сопоставив другое свойство?

Повторитель фильтра AngularJS с несколькими значениями

AngularJS как добавить дни / месяцы / годы к дате

сортировка массива в angularjs

angularJS $ изменение области не обновляет представление

Транспортир: фиктивный атрибут angularjs

Можно ли поместить всю форму в ОДНУ директиву AngularJs?

AngularJS: Каким образом контроллеры и фабрики / службы должны быть структурированы с помощью богатой иерархической объектной модели?

AngularJS - модель данных не привязывается в раскрывающемся списке

Показать и скрыть контроллер не работает, AngularJS

Привязка AngularJS не обновляет модель

Angularjs манипулирует каждым из повторяющихся элементов

Как исключить объект из массива в фильтре AngularJS?

Загрузите файл с сервера и укажите имя файла в angularjs

Как показать нижний колонтитул столбца в сгруппированной сетке в пользовательской сетке AngularJS?

Модель AngularJS не загружает данные в представление

Маршрутизация не работает в AngularJS

AngularJS фильтр с несколькими параметрами

Отключить кнопку отправки, если форма недействительна с AngularJS

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    Резервное копирование / восстановление kafka и zookeeper

  3. 3

    Редактировать существующий файл Excel C # npoi

  4. 4

    Ipython использует% store magic для получения динамического имени

  5. 5

    Как получить список индексов всех значений NaN в массиве numpy?

  6. 6

    Почему бы не выдать ошибку ERROR в тесте Jasmine?

  7. 7

    Дженерики и потоки Java

  8. 8

    Как отфильтровать несколько столбцов в Qtableview?

  9. 9

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  10. 10

    Как изменить значок приложения для проекта libgdx android

  11. 11

    Thymeleaf не отображает значения в проекте Spring Boot

  12. 12

    Unity Проверить, включен ли Toggle

  13. 13

    Airflow не распознает мои настройки подключения S3

  14. 14

    Flutter: Unhandled Exception: FileSystemException: Creation failed, path = 'Directory: '' (OS Error: Read-only file system, errno = 30)

  15. 15

    Bogue étrange datetime.utcnow()

  16. 16

    На графике Matplotlib не отображается легенда

  17. 17

    Создание X509Certificate2 из ECC X509Certificate выдает исключение System.NotSupportedException в C #

  18. 18

    Как добавить фреймворк в файл в папке «Источники» Xcode Playground?

  19. 19

    Выполнение команд PowerShell в программе Java

  20. 20

    Статус HTTP 403 - ожидаемый токен CSRF не найден

  21. 21

    Инструмент для вставки данных, собранных в электронной таблице, в документ Word или PDF

популярныйтег

файл