termiyanc / api
此包的最新版本(1.0.1)没有可用的许可证信息。
用于处理API的抽象类
1.0.1
2017-10-04 18:00 UTC
Requires
- php: >=5.5.0
- ext-curl: *
This package is not auto-updated.
Last update: 2024-09-18 22:26:01 UTC
README
需要PHP >= 5.5.0以及已连接的curl扩展。
为了使用,需要定义一个非抽象的派生类。
在派生类中,需要在$methods
属性中描述API调用的方法,格式为
[
// Имя метода
'method' => [
// Url, переопределяющий url в общей конфигурации
'url' => string,
// Путь, прибавляемый к url
'url_suffix' => string,
// Код ответа при успехе
'success_response_code' => int
// Параметры метода
'params' => [
// Имя параметра
'param' => [
// Обязательный ли параметр. По умолчанию параметр не обязателен
'required' => bool,
// Значение по умолчанию, переопределяющее значение по умолчанию в общей конфигурации.
// Рассматривается, если параметр является обязательным и не определен
'default' => mixed
]
]
]
]
要调用API方法,需要使用静态调用className::method([array $params], [bool $checkResponseCode])
,其中
className — 派生类的名称,
method — 派生类$methods
属性中的方法名称,
$params — 调用方法参数数组(可选),
$checkResponseCode — 是否仅检查响应代码(可选,默认为false)。
可以在派生类中在className::$config
属性中定义配置,格式为
[
// Url для запросов к API
'url' => string,
// Код ответа при успехе
'success_response_code' => int
// Значения параметров методов API по умолчанию
'params_defaults' => array,
// Общие параметры методов API
'common_params' => array,
]
可以在派生类中定义一个selfInit():void
方法,用于初始化时的自定义操作。
可以在派生类中定义一个curlParams():array
方法,返回自定义的curl参数。
API调用通过POST方法进行,参数以JSON格式传递,传递相应的Content-Type头部。在https请求中设置curl参数
[
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => 0
]
可以在派生类中定义一个className::postProcess(ApiResult $result)
方法,将查询结果传递给它。
API方法调用返回
ApiResult类的实例,包含以下字段
- class — 上下文类,
- error — 错误消息,
- calledApiMethod — 调用的API方法,
- requestUrl — 请求URL,
- requestParams — 请求参数,
- requestSuccess — 请求是否成功,
- responseCode — 响应代码,
- requestResult — 请求结果;
或布尔值,表示响应代码是否与成功时定义的响应代码相匹配,如果调用方法时定义了
$checkResponseCode
参数;或
className::postProcess()
方法的返回结果。