Подписка на файл json в angular

#.net #json #angular #rxjs #subscribe

#.net #json #angular #rxjs #Подписка

Вопрос:

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

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

 inputIDs = [
    {
      entityType: "A",
      guids: [
        "6EACCBAE83E",
        "F3354548399",
      ],
    },
    {
      entityType: "B",
      guids: [
        "4CB2FF7EC199",
        "DC60A9F4weCA",
      ],
    },
  ];
  

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

Комментарии:

1. Это верно. Вы выполняете HTTP-вызов своего API и подписываетесь на результаты (когда и если они вернутся). Я бы посоветовал вам ознакомиться с руководством Tour of heroes от Google. angular.io/tutorial/toh-pt6

Ответ №1:

Если вы хотите получать обновления из этого файла json, вам нужно будет использовать «опрос». Вы можете прочитать больше о том, как это сделать с помощью rxjs здесь: Опрос в rxjs.

В основном это будет запрашивать полный файл json каждые X секунд / минут. В Angular это будет выглядеть как обычный http-вызов GET для правильного пути к файлу / URL, где находится файл.

Если вы хотите получать обновления файла мгновенно, вам придется заглянуть в push-сообщения. В основном отправка сообщений с сервера клиенту. Это очень легко сделать в Angular, но для настройки потребуется некоторая внутренняя работа.

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

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