Поскольку страницы, доступные посетителям веб-сайта, не генерируются динамически, когда их запрашивают, но предварительно сгенерированы и послужили статическими HTML-файлами, процесс развертывания новых функций и контента выглядит немного отличным от «традиционных» веб-приложений.
Местное развитие: разработка новых функций может быть сделана на местном уровне.
Nuxt.js поставляется с очень эффективными инструментами для поддержки отличного опыта разработчика, такого как сервер Dev с заменой горячих модулей и перезагрузкой в прямом эфире.
Контент для продуктов хранится в репозитории GIT наряду с исходным кодом, поэтому разработчики могут использовать реальные данные о продукте во время реализации и тестирования.
Конечные точки API должны быть закреплены с использованием какого -то макетного сервера, например, Wiremock или Mockserver, чтобы работать независимо от реальных внешних систем. Для подключения OpenID подключить аутентификацию рассмотрите настройку KeyCloak локально.
Примечание. Этот пример проекта не включает в себя ни одного макетного сервера.
Предварительное контент: каждый раз, когда новые или обновленные данные продукта должны быть опубликованы на веб-сайте. Предварительно пострадавшие файлы JSON должны быть обновлены в репозитории GIT до того, как будет сгенерирована новая версия статических HTML-файлов.
Скрипт контента Special Node.js подключается к Salesforce и получает самые последние данные через API Salesforce REST. Файлы содержимого JSON обновляются соответственно и могут быть привержены репозиторию GIT.
Это полностью зависит от вас, где и когда этот сценарий выполнен. Например, он может работать как действие GitHub или в процессе CI на Travis CI.
Примечание. Salesforce является лишь примером потенциального источника данных для получения контента. Файлы контента также могут быть созданы из любого другого источника данных.
Публикация статических HTML -файлов: каждый коммит в репозитории GIT представляет собой определенную реализацию и состояние контента веб -сайта, которые потенциально могут быть опубликованы.
Процесс сборки преобразует исходный код в оптимизированные кусочки и генерирует статические HTML-файлы, вычисляя все доступные маршруты для реализованных компонентов страницы и предварительно вынесенных файлов контента.
Наконец, все сгенерированные файлы веб -сайтов могут быть опубликованы на любой веб -сервер или сети доставки контента, например, NetLify.
Примечание. Процесс сборки также может использовать запросы API для загрузки контента, который не хранится в файлах содержимого в репозитории GIT.
Динамическое улучшение с помощью API: посетителям обслуживаются статические HTML -файлы при загрузке веб -сайта в браузере. Это очень быстро, потому что ничто не нужно динамически сгенерировать на сервере.
Как только веб -страница загрузила динамический JavaScript, увеличивает и улучшает страницу с динамическими функциями. Это могут быть такие функции, как корзина для покупок или отображение персонализированного пользовательского контента.
Динамические данные могут быть извлечены путем отправки запросов API из браузера. Посетители могут аутентифицировать подлинность, используя стандартные протоколы, такие как OAuth 2.0 и OpenID Connect, чтобы позволить веб -сайту представлять отдельный контент.
Почему? Это позволяет входить в систему с реальным пользователем клиента в сообществе Lightning.
Этот шаг требуется, если вы планируете использовать скрипт обновления контента, и если вы хотите настроить автоматический вход в сообщество Lightning, когда пользователи выходят на веб -сайт.
Почему? Он добавляет пользовательский объект «категория продукта» в вашу организацию Salesforce и устанавливает пользовательское поле на объект Product2, чтобы вы могли определить продукт категории A. Он также устанавливает веб -компонент Lightning для использования на странице сообщества специального журнала, которая автоматически выходит из пользователя.
Скачать и установить Salesforce CLI.
Откройте терминал в каталоге salesforce
.
Подключите Salesforce CLI к вашей Org Salesforce.
sfdx force:auth:web:login -a MyOrg -s
Разверните проект SFDX в вашу Org Salesforce.
sfdx force:source:deploy -p force-app
Почему? Это позволяет сценарию API -сервера и контента подключаться к Salesforce с конкретным техническим пользователем, который позволяет управлять индивидуальным управлением доступа.
Почему? Требуется отобразить страницу входа во время потока аутентификации OpenID Connect.
Если вы хотите настроить автоматический вход для пользователей сообщества, когда они входят на работу на веб -сайте, выполните эти дополнительные шаги:
Почему? Это необходимо для аутентификации OpenID Connect для посетителей веб -сайта и позволяет безопасно подключаться к Salesforce с скриптом API.
Этот шаг не является обязательным, потому что репозиторий GIT уже содержит некоторые примеры продуктов и категорий для демонстрации.
У вас должно быть несколько записей для объекта Product2 в вашей организации Salesforce, которые активны и имеют записи цены в какой -то книге по ценам, используемой для обновления контента.
Вы также можете создать некоторые категории продуктов и назначить их своим продуктам.
Примечание. Сценарий требует, чтобы метаданные Salesforce были развернуты в вашей организации.
Откройте терминал в content-scripts
.
Установите следующие переменные среды.
Имя | Описание |
---|---|
Salesforce_instance_url | Базовый URL экземпляра Salesforce (шаблон https://xx##.salesforce.com ) |
Salesforce_api_version | Salesforce API версия для использования |
Salesforce_token_endpoint | Конечная токена токена OAuth 2.0 экземпляра Salesforce |
Salesforce_client_id | Ключ потребителей подключенного приложения (скопировано ранее из представления приложения) |
Salesforce_client_secret | Потребительский секрет подключенного приложения (скопировано ранее из представления приложения) |
Salesforce_username | Имя пользователя пользователя интеграции |
Salesforce_password | Пароль интеграции пользователя + токена безопасности (просто объедините их) |
Salesforce_price_book_name | Необязательный. Ценовая книга для использования. По умолчанию: «Стандартная книга цен» |
Пример:
SALESFORCE_INSTANCE_URL=https://eu25.salesforce.com
SALESFORCE_API_VERSION=49.0
SALESFORCE_TOKEN_ENDPOINT=https://login.salesforce.com/services/oauth2/token
SALESFORCE_CLIENT_ID=3MVG9...ru7XA
SALESFORCE_CLIENT_SECRET=17DAD...0110F
[email protected]
SALESFORCE_PASSWORD=abcde...KiQ9n
Совет: Вы можете поместить эти задания переменной в файл, называемый .env
в content-scripts
каталога для разработки и тестирования.
Установите зависимости Node.js.
yarn install
Запустите скрипт, чтобы обновить категории и продукты JSON файлы в content
каталоге.
yarn start
Откройте терминал в api
каталога.
Установите следующие переменные среды.
Имя | Описание |
---|---|
Порт | Локальный серверный порт для прослушивания. По умолчанию: 3000 |
Salesforce_instance_url | Базовый URL экземпляра Salesforce (шаблон https://xx##.salesforce.com ) |
Salesforce_api_version | Salesforce API версия для использования |
Salesforce_token_endpoint | Конечная точка токена OAuth 2.0 экземпляра Salesforce (не сообщество) |
Salesforce_jwks_endpoint | OpenID Connect JSON Web Key Set Endpoint сообщества Salesforce Lightning |
Salesforce_issuer_url | URL -адрес эмитента включен в токен ID, выпущенный Salesforce |
Salesforce_client_id | Ключ потребителей подключенного приложения (скопировано ранее из представления приложения) |
Salesforce_client_secret | Потребительский секрет подключенного приложения (скопировано ранее из представления приложения) |
Salesforce_username | Имя пользователя пользователя интеграции |
Salesforce_password | Пароль интеграции пользователя + токена безопасности (просто сожмите их) |
Salesforce_price_book_name | Необязательный. Ценовая книга для использования. По умолчанию: «Стандартная книга цен» |
Security_cors_origin | Базовый URL -адрес веб -приложения позволил получить доступ к серверу. |
Пример:
PORT=4000
SALESFORCE_INSTANCE_URL=https://eu25.salesforce.com
SALESFORCE_API_VERSION=49.0
SALESFORCE_TOKEN_ENDPOINT=https://login.salesforce.com/services/oauth2/token
SALESFORCE_JWKS_ENDPOINT=https://georgwittberger-developer-edition.eu25.force.com/id/keys
SALESFORCE_ISSUER_URL=https://georgwittberger-developer-edition.eu25.force.com
SALESFORCE_CLIENT_ID=3MVG9...ru7XA
SALESFORCE_CLIENT_SECRET=17DAD...0110F
[email protected]
SALESFORCE_PASSWORD=abcde...KiQ9n
SECURITY_CORS_ORIGIN=http://localhost:3000
Совет: вы можете поместить эти задания переменной в файл, который называется .env
в api
каталогов для разработки и тестирования.
Установите зависимости Node.js.
yarn install
Запустите сервер.
yarn start
Откройте терминал в каталоге Project Root.
Установите следующие переменные среды.
Имя | Описание |
---|---|
API_URL | Базовый URL -адрес сервера API |
Logout_url | Необязательный. URL -адрес страницы выхода сообщества Salesforce Lightning |
Oauth2_authorize_endpoint | OAUTH 2.0 ALIDERIST ENDPOINT сообщества Salesforce Lightning Lightning |
Oauth2_userinfo_endpoint | Конечная точка информации пользователя сервера API |
Oauth2_client_id | Ключ потребителей подключенного приложения (скопировано ранее из представления приложения) |
Oauth2_scopes | OAuth 2.0 Scopes для запроса во время аутентификации |
Пример:
API_URL=http://localhost:4000
LOGOUT_URL=https://georgwittberger-developer-edition.eu25.force.com/s/logout
OAUTH2_AUTHORIZE_ENDPOINT=https://georgwittberger-developer-edition.eu25.force.com/services/oauth2/authorize
OAUTH2_USERINFO_ENDPOINT=http://localhost:4000/userinfo
OAUTH2_CLIENT_ID=3MVG9...ru7XA
OAUTH2_SCOPES=openid,id
Совет: вы можете поместить эти задания переменной в файл, называемый .env
в корневом каталоге проекта для разработки и тестирования.
ПРИМЕЧАНИЕ. Если переменная LOGOUT_URL
не будет предоставлена, пользователи будут перенаправлены на страницу входа в систему веб -сайта без внешней обработки.
Установите зависимости Node.js.
yarn install
Либо запустите сервер разработки, который предлагает Live Reload ...
yarn dev
... или сначала сгенерируйте статические файлы HTML, а затем обслуживайте эти файлы из dist
Directory.
yarn generate
yarn start
Откройте свой браузер на http: // localhost: 3000
MIT Лицензия