#.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-ответ интерфейсу. Это связано с тем, что сохранение файла в файловой системе довольно подвержено ошибкам. У вас есть возможность возникновения всевозможных блокировок и повреждений. Это, конечно, зависит от того, в какой среде вы работаете и какой у вас выбор в изменении существующего кода.