# Ajax API 概述

> Shoplazza Ajax API 的总体说明：它能用于哪些前台场景、主题里怎么发起请求，以及为什么接口要使用多语言 URL。

Ajax API 提供一套轻量级的 REST API endpoints，用于开发 [Shoplazza 主题](/docs/theme/getting-started/)。

:::note
Ajax API 只能由 Shoplazza 托管的主题使用。
:::

## 使用场景

Ajax API 的可能使用场景包括：

* 将商品添加到购物车并更新购物车商品数量。
* 展示相关商品推荐。
* 在访客输入搜索关键词时提示商品和 collections。
* 注册顾客、让顾客登录，以及管理顾客资料和地址。
* 向顾客展示自己的订单和包裹物流状态。
* 把博客文章、自定义页和导航菜单取到 section 里。
* 在 JavaScript 中读取商品、专辑或店铺的元字段。

请参阅 [Ajax API 参考文档](/docs/theme/references/ajax-api/cart)，获取所有可用 API endpoints 的完整列表。

***

## 发起 API 请求

Ajax API 接受四种类型的 HTTP 请求：

* `GET` 请求：读取店铺数据，例如购物车、商品、专辑、顾客和订单
* `POST` 请求：创建数据或提交表单，例如加购或让顾客登录
* `PATCH` 请求：修改数据，例如购物车行项目或顾客地址
* `DELETE` 请求：删除数据，例如购物车行项目或顾客地址

例如，要获取购物车的当前内容，请向店铺 `/api/cart` endpoint 发送客户端请求。

```javascript title="示例"
fetch(window.SHOPLAZZA.routes.root + '/api/cart')
  .then(response => response.json())
  .then(data => { /* do something */});
```

***

## 多语言 URL {#locale-aware-urls}

当店铺面向国际市场或以多种语言销售时，可以为其生成动态 URL。使用 Ajax API 时，应使用动态的、区域感知的 URL，以便为访客提供与其所选语言和国家一致的体验。

全局值 `window.SHOPLAZZA.routes.root` 可在 JavaScript 中作为构建多语言 URL 的基础。该全局值始终以空字符串结尾，因此您可以放心地使用简单的字符串拼接来构建完整的 URL。
