如何在 JAMstack 解决方案中代理 API 请求?
How do I proxy API requests in a JAMstack solution?
我正在开发一个几乎完全静态的网站。我使用生成器创建所有 HTML.
但是,我的站点是嵌入在其页面中的商店的前端。我有一个 node.js 服务器代表浏览器向后端存储代理请求。它所做的只是提供购物车中的商品数量,这样我就可以在我网站的所有页面上更新该数量。那是因为浏览器不允许跨域脚本。我的服务器必须充当客户端和商店之间的代理。
(嵌入式商店是从商店的网站加载的,因此它本身不需要代理。)
我希望最终部署到 Netlify 或一些类似的 JAMstack 提供商。但我看不出如何在 Netlify 上代理。
这个问题的标准解决方案是什么?或者代理对 JAMstack 解决方案不可用?是否有 JAMstack 供应商可以解决这个问题?
Netlify 允许使用状态码为 200 的重定向路径进行代理重写。
您可以将 proxy redirects 存储在部署站点根目录下的 _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
If the API supports standard HTTP caching mechanisms like Etags or Last-Modified headers, the responses will even get cached by CDN nodes.
注意: 您也可以 setup your redirects 在您的 netlify.toml
我正在开发一个几乎完全静态的网站。我使用生成器创建所有 HTML.
但是,我的站点是嵌入在其页面中的商店的前端。我有一个 node.js 服务器代表浏览器向后端存储代理请求。它所做的只是提供购物车中的商品数量,这样我就可以在我网站的所有页面上更新该数量。那是因为浏览器不允许跨域脚本。我的服务器必须充当客户端和商店之间的代理。
(嵌入式商店是从商店的网站加载的,因此它本身不需要代理。)
我希望最终部署到 Netlify 或一些类似的 JAMstack 提供商。但我看不出如何在 Netlify 上代理。
这个问题的标准解决方案是什么?或者代理对 JAMstack 解决方案不可用?是否有 JAMstack 供应商可以解决这个问题?
Netlify 允许使用状态码为 200 的重定向路径进行代理重写。
您可以将 proxy redirects 存储在部署站点根目录下的 _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
If the API supports standard HTTP caching mechanisms like Etags or Last-Modified headers, the responses will even get cached by CDN nodes.
注意: 您也可以 setup your redirects 在您的 netlify.toml