Как я могу вызвать метод из серверного проекта в веб-сборке Blazor?

#blazor #asp.net-core-webapi #blazor-webassembly

Вопрос:

У меня есть проект Blazor Webassembly PWA под названием «QrReader.Клиент» и проект под названием «QrReader.Сервер», который был сгенерирован после установки флажка «ASP.NET Ядро размещено». В моем «QrReader.Проект «Клиент» я использовал библиотеку js для чтения QR-кодов, которая отлично работает. Теперь я хочу реализовать решение, которое создает и записывает текстовый файл на мой FTP-сервер после успешного сканирования. У меня уже есть метод «UploadToFtp()» для этого, который отлично работает, но я впервые работаю с API.

Итак, где должен находиться мой метод «UploadToFtp()» и как я могу вызвать этот метод после успешного сканирования Qr с помощью javascript или razor? Я не чувствую, что этот метод принадлежит контроллеру API…

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

1. Если вы хотите вызвать UploadToFtp() клиента,вы можете поместить его в свой api. Или вы также можете создать новый проект и вложить UploadToFtp() в него средства.

Ответ №1:

… решение, которое создает и записывает текстовый файл на мой FTP-сервер после успешного сканирования.

Зачем вам использовать FTP? Это старый протокол, который не поддерживается в приложении браузера.

Результат сканирования может быть отправлен в ваш API (QrReader.Сервер) в виде текста или в виде DTO.

Если вам нужен стартер, посмотрите, как fetchData.razor использует GetAsJsonAsync для получения своих прогнозов. Вам понадобится PostAsJsonAsync, чтобы пойти в другом направлении.

Когда вам действительно понадобится FTP, вы можете загрузить его со своего сервера с помощью FtpWebRequest.