gplcart / api
基于JWT授权实现Web API的辅助模块
dev-master
2018-03-09 13:36 UTC
Requires
This package is not auto-updated.
Last update: 2024-09-29 05:27:43 UTC
README
API是GPL Cart的一个模块,可以帮助您实现GPLCart的WEB API。基本上,它提供了一种基于JWT令牌的简单授权机制,并使用其他模块来处理API请求。它本身不执行任何操作,因此除非其他模块需要,否则请不要安装。
依赖项
安装
- 手动下载并解压到
system/modules
,或者使用composercomposer require gplcart/api
。重要:如果您手动下载了模块,请确保提取的模块文件夹名称不包含分支/版本后缀,例如-master
。如有必要,请重命名。 - 转到
admin/module/list
并启用该模块 - 在
admin/module/settings/api
中调整模块设置 - 在
admin/user/role
中授予其他管理员模块权限 - 在
admin/user/api
中添加一些API用户
用法
查看example.php
以获取代码示例。API端点 - http://yourdomain.com/api。此URL用于初始登录以获取访问令牌。一旦您获得令牌,您就可以使用URL参数查询API,例如:http://domain.com/api/arg1/arg2/arg3。您可以传递API版本作为查询参数:http://yourdomain.com/api/arg1/arg2/arg3?varsion=1.0。注意:目前无法刷新访问令牌。当访问令牌过期后,您应该重新登录。
处理器
由于该模块不自行处理API请求,因此您应该使用其他模块来完成此操作。处理器负责使用来自URL的参数数组执行系统调用。这就是如何在模块中实现module.api.process
钩子的方法
public function hookModuleApiProcess(array $params, array $user, &$response, $controller){
$query = $params['query']; // GET query array
$version = isset($query['version']) ? $query['version'] : 1; // API version
list($arg1, $arg2) = $params['arguments']; // Exploded path arguments
if($arg1 === 'products'){
$response = array(...); // An array of products to be delivered to a client
}
默认情况下,所有处理器数据都以JSON格式发送。如果您需要其他格式,请实现钩子module.api.output
public function hookModuleApiOutput(array $arguments, array $user, $response, $controller){
// Don't forget to set all needed headers
echo $this->arrayToXml($response);
exit; // Important. Abort further processing
}