Как мне прокси-запросы API в решении JAMstack?
Я разрабатываю сайт, который практически полностью статичен. Я использую генератор для создания всего HTML.
Тем не менее, мой сайт является интерфейсом магазина, встроенного в его страницы. У меня есть маленький сервер node.js, который передает запросы от имени браузера в серверное хранилище. Все, что он делает - это указывает количество товаров в корзине, чтобы я мог обновлять этот номер на всех страницах моего сайта. Это потому, что браузер не поддерживает междоменные сценарии. Мой сервер должен действовать как прокси между клиентом и магазином.
(Встроенное хранилище загружается с веб-сайта магазина, поэтому само по себе не требует прокси.)
Я надеялся в конечном итоге развернуть на Netlify или некотором подобном провайдере JAMstack. Но я не понимаю, как бы я прокси на Netlify.
Каково стандартное решение этой проблемы? Или прокси недоступен для решений JAMstack? Существуют ли провайдеры JAMstack, которые решают эту проблему?
1 ответ
Netlify позволяет перезаписывать прокси с использованием путей перенаправления с кодом состояния 200.
Вы можете хранить свои перенаправления прокси в _redirects
в корне вашего развернутого сайта. Другими словами, файл должен существовать в корне каталога сайта, который будет развернут после сборки.
_redirects
/api/* https://api.example.com/:splat 200
Итак, призыв к:
/api/v1/gifs/random?tag=cat&api_key=your_api_key
будет прокси к:
https://api.example.com/v1/gifs/random?tag=cat&api_key=your_api_key
Если API поддерживает стандартные механизмы кэширования HTTP, такие как заголовки Etags или Last-Modified, ответы даже будут кэшироваться узлами CDN.
ПРИМЕЧАНИЕ: вы также можете настроить перенаправления в вашем netlify.toml