Привет.
Прошу помощи, подскажите, что не так передаю?
Вызываю http request из фронта
Ошибка ERROR RUN BLOCK HttpRequest TypeError: e.forEach is not a function
мой БП
Привет.
Прошу помощи, подскажите, что не так передаю?
Вызываю http request из фронта
Ошибка ERROR RUN BLOCK HttpRequest TypeError: e.forEach is not a function
мой БП
такое ощущение, что он не принимает мой json на вход в body
Причем проблема такая только когда БП из фронтенда.
Такой же БП из бэка, и все проходит нормально
БП из Бэка
БП из фронта
@borodin исправлено, проверьте
@anthony.appmaster, вроде теперь другая ошибка
@borodin у вас это в превью или в сгенерированном приложении? Вам нужно перепубликовать
@anthony.appmaster в опубликованном.
Даже еще раз переопубликовал и все то же
@borodin в Concat что склеиваете?
@anthony.appmaster
Делаю json из string
@Sergei_Talai ну он не статичный, здесь я просто беру упрощенную версию.
Сейчас сделал хардкод json в body запроса, работает.
А как быть с не статичным?
Так же как вы передаете данные в headers. Request Body принимает не только json но и модели и массивы моделей и key-value модели. Можно создать виртуальную модель и ее передавать
@Sergei_Talai я имею ввиду, что мне нужно передавать именно json, но не статичный. Мне нужно его формировать сначала из разных string полученных из фронта. Поэтому я и использовал упрощенный пример concat
Мы работаем над тем, чтобы улучшить блок HTTP Request в веб приложениях. Есть ряд проблем с парсингом JSON, конвертацией.
Надеюсь на следующей неделе поправим и будет не хуже чем в бэкенде.
@OlegSotnikov хорошие новости.
Может сейчас есть какой-нибудь воркэраунд как собирать json и отправлять его в http реквест из фронта?
По воркэраунду не подскажу, нужно смотреть детальнее.
А вообще лучшей практикой является выполнение запросов к сторонним системам всегда из бэкенда за исключением случаев:
@OlegSotnikov хочу разобраться, то есть если я в appmaster реализую фронтенд и у меня есть свой внешний бэкэенд. Я из фронта вызываю свой бэкэнд, то мне лучше в аппмастер в бэке реализовывать всю безнес логику взаимодействия с моим бэком?
Сильно зависит от обстоятельств.
Если у вас уже есть полностью готовый бэкенд, с управлением пользователями и всем что нужно, то вызывать напрямую это самое простое решение. Не стоит проксировать.
Если у вас бэкенд выполняет какие-то отдельные бизнес-задачи и все равно нужно будет построить полноценную работу с пользователями и другую стандартную логику, то да - 2 микросервиса на бэкенде: один это бэкенд сделанный в AppMaster, а второй ваш кастомный кодом с интеграцией по REST API или в будущем через gRPC.
При использовании нашего фронта и бэка вместе есть ряд преимуществ:
С другой стороны для веб приложения запланирован дизайнер внешних интеграций, точно такой же как сейчас есть в бэкенде (умеет импортировать OpenAPI/Swagger но немного кривой пока). Комбинация HTTP Request блока и Ext API Designer даст возможность не использовать наш бэкенд. HTTP Request будет обновлен к концу следующей недели, а Ext API Designer в веб приложениях появится до конца года.
@OlegSotnikov ну вообще да, у нас есть полноценный бэк, где идет вся логика и работа с пользователями. Мы по сути хотим из фронта аппмастера брать и передавать данные в наш бэк.
Единственное, пока не понятно как прокинуть аутентификацию пользователя из нашего бэка в фронт аппмастера.
PS может действительно придется делать такого франкенштейна с нашим бэком, и бэк и фронт на Appmaster
Отлично, делайте прямую интеграцию без нашего бэкенда чтобы избежать двойной работы.
У вас наверняка авторизация через cookie или auth хэдер - вы их оба можете передавать в блоках HTTP Request в виде заголовков, хранить в глобальных переменных с persistence.
Если используется только заголовок authorization, то можно его установить блоком Set Auth Token в веб приложениях.