您可以使用 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
要禁用旋转器,请执行以下操作之一:
- 不要有旋转器边框类。
- 使用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
, orguest
).method
: the HTTP method to use (get
orpost
).endpoint
: the specific endpoint to request (e.g.,/system/version
).params
: any parameters to include in the request (e.g., query parameters for aGET
request or request body data for aPOST
request).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 函数。您可以使用此功能来处理任何错误,并向用户显示适当的错误消息。