JavaScript 中的 API 包装器

您可以使用 JavaScript 中的 API 包装器向 API 发出请求。这对主题和模块非常有用,您应该使用它,而不是自己提出请求。

拥有包装器允许我们对 API 进行更改,而无需更改主题或模块中的代码。这使您的代码更具功能性。

导入包装器

要导入 API 包装器,请使用以下代码:

<meta name="csrf-token" content="{{ CSRFToken }}"><script src="{{ "Api/API.js?v=#{guest.system_version}" | library_url }}"></script>

此代码首先创建一个新的元标签,以存储 CSRF 令牌。API 包装器使用此标签将令牌添加到 API 请求中。接下来,它使用 library_url过滤器导入 API 包装器,该过滤器为文件生成正确的 URL,然后附加当前系统版本以防止缓存问题。

显示一个 “spinner”

在长期运行的请求中,FOSSBilling API包装器将显示旋转器(有时称为加载器)。它将自动以屏幕中央为中心,有淡入,并且只有在请求运行至少250毫秒时才会显示。

要使用它,只需有一个名为 spinner-border 的动画类。FOSSBilling 将自动创建并销毁其元素:spinner example

禁用 spinner

要禁用旋转器,请执行以下操作之一:

  • 不要有旋转器边框类。
  • 使用API包装器时,将false传递给旋转器选项。(此参数是完全可选的,除非您想禁用旋转器)

示例:

API.admin.post("client/get_list", {}, function(response) {  // handle successful response}, function(error) {  // handle error response}, false);

提出请求

使用包装器的API请求将看起来像这样:API.guest.get("system/version", {}, function(response) API包装器具有以下参数:

  • Endpoint Type: the type of API endpoint (admin, client, or guest).
  • method: the HTTP method to use (get or post).
  • endpoint: the specific endpoint to request (e.g., /system/version).
  • params: any parameters to include in the request (e.g., query parameters for a GETrequest or request body data for a POSTrequest).
  • successHandler: 处理来自API的成功响应的功能。
  • errorHandler: 处理来自API的错误响应的功能。

以下是几个不同的示例:要向来宾API发出GET请求并请求/api/guest/system/version端点,请使用:

API.guest.get("system/version", {}, function(response) {  // handle successful response}, function(error) {  // handle error response});

要向管理员API发出POST请求并请求/api/admin/client/get_listendpoint,请使用:

API.admin.post("client/get_list", {}, function(response) {  // handle successful response}, function(error) {  // handle error response});

处理 API 响应

处理成功的回复

在上面的示例代码片段中,当 API 请求成功时,会调用 successHandler 函数。您可以使用此函数来处理 API 返回的数据。

处理错误响应

当 API 请求期间发生错误时,会调用 errorHandler 函数。您可以使用此功能来处理任何错误,并向用户显示适当的错误消息。