让 URL 更易于接受
Posted: Thu Jan 30, 2025 6:14 am
架构概述
用户界面 (UI) 可以直接调用 Shopify API,但为了更易于重用和扩展,我们决定制作一些小型实用函数,我们都可以使用它们将我们的 UI 连接到 Shopify API。将这些抽象为无服务器函数意味着我们所有人都可以为我们的网站提供一个简化的 API,该 API 可以为我们与 Shopify 通信。我们只需编写一次,然后每个不同的 UI 都可以使用它们。
提示:当您构建使用 API 的前端时,这种小层次的抽象确实很有帮助,因为这意味着您可以在一个地方管理和规范未来的更改,而不会中断 UI 的代码。
实用函数作为 API
为了使体验栩栩如生,UI 只需要几个服务。这些成为我们网站由Netlify Functions提供的 API 端点。它们是:
将商品添加到购物车 — 由add-to-cart.js提供从购物 美国电报号码数据库 车中删除商品 — 由remove-from-cart.js提供获取当前购物车状态的数据——由get-cart.js提供我为我的网站选择的模式是,在每次构建期间提取我需要的所有产品数据,因此,我不是在请求时为网站页面获取这些数据,而是在构建期间使用Eleventy 数据文件从 Shopify API 获取一次这些数据。
获取产品目录 — products.js
我认为产品列表页面和产品详细信息页面足够稳定,可以在构建时生成它们(如果我们愿意,我们可以使用渐进式增强来获取和更新最新定价和库存水平)。但是购物车页面有点不同。我们无法在构建时构建和填充它,因为用户将在购物时对其进行操作。我们可以在调用购物车 API 后在客户端呈现购物车,但我选择尽可能保持 UI 的简单性,而是对购物车页面进行传统的同步请求,该请求将由无服务器函数按需呈现给我。
显示购物车的页面视图 — cart-view.js
好吧。我承认。我是个 URL 迷。只要有可能,我喜欢看到友好、明显、可读的 URL。这个模型非常实用,所以让我们让网站用来访问 API 层的 URL 变得漂亮和明显。Netlify的重定向 API向前迈进!
将这些行添加到netlify.toml文件意味着我们可以非常清晰地与无服务器函数进行通信。这对开发人员 ( fetch('/api/add-to-cart', data);) 和用户 ( /cart) 都有好处。
用户界面 (UI) 可以直接调用 Shopify API,但为了更易于重用和扩展,我们决定制作一些小型实用函数,我们都可以使用它们将我们的 UI 连接到 Shopify API。将这些抽象为无服务器函数意味着我们所有人都可以为我们的网站提供一个简化的 API,该 API 可以为我们与 Shopify 通信。我们只需编写一次,然后每个不同的 UI 都可以使用它们。
提示:当您构建使用 API 的前端时,这种小层次的抽象确实很有帮助,因为这意味着您可以在一个地方管理和规范未来的更改,而不会中断 UI 的代码。
实用函数作为 API
为了使体验栩栩如生,UI 只需要几个服务。这些成为我们网站由Netlify Functions提供的 API 端点。它们是:
将商品添加到购物车 — 由add-to-cart.js提供从购物 美国电报号码数据库 车中删除商品 — 由remove-from-cart.js提供获取当前购物车状态的数据——由get-cart.js提供我为我的网站选择的模式是,在每次构建期间提取我需要的所有产品数据,因此,我不是在请求时为网站页面获取这些数据,而是在构建期间使用Eleventy 数据文件从 Shopify API 获取一次这些数据。
获取产品目录 — products.js
我认为产品列表页面和产品详细信息页面足够稳定,可以在构建时生成它们(如果我们愿意,我们可以使用渐进式增强来获取和更新最新定价和库存水平)。但是购物车页面有点不同。我们无法在构建时构建和填充它,因为用户将在购物时对其进行操作。我们可以在调用购物车 API 后在客户端呈现购物车,但我选择尽可能保持 UI 的简单性,而是对购物车页面进行传统的同步请求,该请求将由无服务器函数按需呈现给我。
显示购物车的页面视图 — cart-view.js
好吧。我承认。我是个 URL 迷。只要有可能,我喜欢看到友好、明显、可读的 URL。这个模型非常实用,所以让我们让网站用来访问 API 层的 URL 变得漂亮和明显。Netlify的重定向 API向前迈进!
将这些行添加到netlify.toml文件意味着我们可以非常清晰地与无服务器函数进行通信。这对开发人员 ( fetch('/api/add-to-cart', data);) 和用户 ( /cart) 都有好处。