gplcart / api

基于JWT授权实现Web API的辅助模块

维护者

详细信息

github.com/gplcart/api

源代码

问题

安装: 1

依赖: 0

建议者: 0

安全性: 0

星星: 0

关注者: 0

分支: 0

开放问题: 0

类型:gplcart-module

dev-master 2018-03-09 13:36 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:27:43 UTC


README

Build Status Scrutinizer Code Quality

API是GPL Cart的一个模块,可以帮助您实现GPLCart的WEB API。基本上,它提供了一种基于JWT令牌的简单授权机制,并使用其他模块来处理API请求。它本身不执行任何操作,因此除非其他模块需要,否则请不要安装。

依赖项

安装

  1. 手动下载并解压到system/modules,或者使用composer composer require gplcart/api。重要:如果您手动下载了模块,请确保提取的模块文件夹名称不包含分支/版本后缀,例如-master。如有必要,请重命名。
  2. 转到admin/module/list并启用该模块
  3. admin/module/settings/api中调整模块设置
  4. admin/user/role中授予其他管理员模块权限
  5. 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
}