sancho2804 / rest_client
PHP REST API服务客户端
Requires
- php: ^7.0
- ext-curl: *
- ext-json: *
This package is auto-updated.
Last update: 2024-09-21 18:21:15 UTC
README
许多服务都配备了REST API,这对开发者来说非常方便。为了与API交互,需要开发特定任务的模块。我建议使用"REST API服务卡片"来简化任务。这些卡片以JSON格式呈现。但类也可以直接用于调用服务方法。
开始吧 ,我要开枪了
通过composer安装
composer require sancho2804/rest_client
使用namespace自动加载创建对象类
include_once 'vendor/autoload.php'; use sancho2804\rest_client\main; $yandex_disk=new main('https://cloud-api.yandex.net:443/v1/','OAuth',$token);
第一个参数是所需服务的REST API链接。将在此链接上添加后续指定的路径。如果服务不需要认证,则可以省略第二个和第三个参数。第二个参数通常是一个字符串或Bearer。
可用方法
rest_client::set_service($service_name)
根据服务名称加载服务地图。不需要扩展名。地图存储在src/maps/< service_name >.json中
参数
- 服务名称/地图文件名称
返回值:void
$yandex_disk->set_service('yandex_disk');
rest_client::exec($alias, $post_fields, [$arg1, ....])
调用地图中定义的服务方法。
参数
- $alias - 调用服务方法的别名
- $post_fields - 默认null。如果传递数组,则将其传递到POST头部
- 执行请求到服务方法所需的所有必要参数
返回值:默认 - 以数组形式返回响应结果。如果$rest_client::$result_is_json设置为false,则返回原始结果。
$yandex_disk->exec('dir_info',null,'/');
rest_client::${method_name}($post_fields, [$arg1, ....])
以类方法的形式调用服务方法。
参数
- $post_fields - 默认null。如果传递数组,则将其传递到POST头部
- 执行请求到服务方法所需的所有必要参数
返回值:默认 - 以数组形式返回响应结果。如果rest_client::$result_is_json设置为false,则返回原始结果。
$result=$yandex_disk->dir_info(null, '/'); //Идентично $yandex_disk->exec('dir_info',null,'/');
rest_client::get($path, $post_fields)
通过HTTP GET方法调用服务方法。
参数
- $path - 到方法的服务相对路径
- $post_fields - 默认null。如果传递数组,则将其传递到POST头部
返回值:默认 - 以数组形式返回响应结果。如果rest_client::$result_is_json设置为false,则返回原始结果。
$yandex_disk->get('disk/resources?path=/');
rest_client::save($path, $post_fields)
通过HTTP POST方法调用服务方法。
参数: 与get方法相同
返回值:与get方法相同
$yandex_disk->save('disk/resources/copy?from=/file1.php&path=/file2.php');
rest_client::delete($path, $post_fields)
通过HTTP DELETE方法调用服务方法。
参数: 与get方法相同
返回值:与get方法相同
$yandex_disk->delete('disk/resources?path=/file2.php');
rest_client::update($path, $post_fields)
通过HTTP PATCH方法调用服务方法。
参数: 与get方法相同
返回值:与get方法相同
$yandex_disk->update('disk/resources?path=/file2.php&body=...');
rest_client::create($path, $post_fields)
通过HTTP PUT方法调用服务方法。
参数: 与get方法相同
返回值:与get方法相同
$yandex_disk->create('disk/resources/publish?path=/file2.php');
rest_client::options($path, $post_fields)
通过HTTP OPTIONS方法调用服务方法。
参数: 与get方法相同
返回值:与get方法相同
//Пока не встречал его в работе, но он как суслик
JSON地图格式
{
"dir_info":{
"method":"GET",
"uri":"disk/resources?path={::}&offset={::}&limit={::}&sort={::}&fields={::}",
"require":[0]
},
...
}
- dir_info - 调用服务的别名
- method - HTTP方法。GET,POST,DELETE,PATCH,PUT,OPTIONS
- uri - REST API方法的路径。{::}构造将被替换为rest_client::exec方法中的参数,顺序与传递的顺序相同
- require - 指定必须传递的{::}构造的编号。 计数从0开始