Вопрос или проблема
В следующей документации объясняется, как получить строку экземпляра приложения с фронтенда, но интересно, возможно ли получить её и из функции бэкенда wix? Функция бэкенда определена в моем приложении и будет вызывать один из моих других API. Я надеюсь аутентифицировать запрос к своему другому API, используя строку экземпляра приложения.
Ответ или решение
Вопрос о том, возможно ли получить строку экземпляра приложения непосредственно из функции бэкенда Wix, является актуальным при разработке приложений, которые взаимодействуют с внешними API. К сожалению, в текущей архитектуре Wix нет прямого способа получить строку экземпляра приложения из бэкенда. Эта информация считается частью клиентского контекста и доступна только на стороне клиента.
Тем не менее, существует обходной путь, который вы можете использовать. Вам нужно будет передавать строку экземпляра приложения из клиентского кода в вашу функцию бэкенда. Это можно сделать следующим образом:
-
Получение строки экземпляра приложения на клиенте: В вашем клиентском коде вы можете использовать доступные методы для получения строки экземпляра. Пример:
import { getCurrentAppInstance } from 'wix-app'; const appInstance = getCurrentAppInstance();
-
Передача строки в бэкенд: После того как вы получили строку экземпляра приложения, вам нужно передать её в вызов функции бэкенда. Пример передачи строки в функцию:
import wixFetch from 'wix-fetch'; wixFetch('/backend/myFunction', { method: 'post', body: JSON.stringify({ appInstanceString: appInstance }), headers: { 'Content-Type': 'application/json' } });
-
Обработка запроса в бэкенде: На стороне бэкенда вы можете принимать переданную строку экземпляра и использовать её для аутентификации запросов к вашему внешнему API. Пример функции бэкенда:
import { ok, notFound } from 'wix-http-functions'; export function myFunction(request) { const { appInstanceString } = request.body; if (!appInstanceString) { return notFound({ error: 'App instance string is required.' }); } // Используйте appInstanceString для вашего API вызова // ... return ok({ success: true }); }
Таким образом, хотя вы не можете получить строку экземпляра приложения непосредственно из функций бэкенда, данный метод передачи данных от клиента к бэкенду позволит вам аутентифицировать запросы к вашим внешним API эффективно.