orderhandler / apollo-openapi-sdk
Apollo Open Api的SDK
v1.0.0
2020-02-25 06:07 UTC
Requires
- php: >=7.2
- guzzlehttp/guzzle: ^6.2
This package is auto-updated.
Last update: 2024-09-25 16:38:08 UTC
README
Apollo Open Api的SDK
需求
- PHP >= 7.2
- Composer
安装
$ composer require "orderhandler/apollo-openapi-sdk"
使用
使用示例(以Base为例):
<?php use OrderHandler\ApolloOpenApi\ApiFactory; $config = [ 'PortalAddress' => 'Your Portal Address', 'Authorization' => 'Your Authorization Token', ]; $base = ApiFactory::base($config); $appList = $base->getApp($appId);
文档
Config参数说明:
URL路径参数说明:
1.Base
实例化
<?php //config参数详情见顶部参数说明 $base = OrderHandler\ApolloOpenApi\ApiFactory::base($config);
1.1获取App的环境,集群信息
参数说明:
- appId 所管理的配置App Id
$appList = $base->getApp($appId);
返回数据示例
[
{
"env":"DEV",
"clusters":[ //集群列表
"default",
"FAT381"
]
},
{
"env":"UAT",
"clusters":[
"default"
]
},
{
"env":"PRO",
"clusters":[
"default",
"SHAOY",
"SHAJQ"
]
}
]
2.Namespace
实例化
<?php //config参数详情见顶部参数说明 $namespaces = OrderHandler\ApolloOpenApi\ApiFactory::namespaces($config);
2.1获取集群下所有Namespace信息
参数说明:
- url_params 参数详情见顶部URL路径参数说明
$url_params = [
'env' => 'ENV',
'appId' => 'APPID',
'clusterName' => 'CLUSTERNAME',];
$list = $namespaces->getAll($url_params);
返回数据示例
[
{
"appId": "100003171",
"clusterName": "default",
"namespaceName": "application",
"comment": "default app namespace",
"format": "properties", //Namespace格式可能取值为:properties、xml、json、yml、yaml
"isPublic": false, //是否为公共的Namespace
"items": [ // Namespace下所有的配置集合
{
"key": "batch",
"value": "100",
"dataChangeCreatedBy": "song_s",
"dataChangeLastModifiedBy": "song_s",
"dataChangeCreatedTime": "2016-07-21T16:03:43.000+0800",
"dataChangeLastModifiedTime": "2016-07-21T16:03:43.000+0800"
}
],
"dataChangeCreatedBy": "song_s",
"dataChangeLastModifiedBy": "song_s",
"dataChangeCreatedTime": "2016-07-20T14:05:58.000+0800",
"dataChangeLastModifiedTime": "2016-07-20T14:05:58.000+0800"
},
{
"appId": "100003171",
"clusterName": "default",
"namespaceName": "FX.apollo",
"comment": "apollo public namespace",
"format": "properties",
"isPublic": true,
"items": [
{
"key": "request.timeout",
"value": "3000",
"comment": "",
"dataChangeCreatedBy": "song_s",
"dataChangeLastModifiedBy": "song_s",
"dataChangeCreatedTime": "2016-07-20T14:08:30.000+0800",
"dataChangeLastModifiedTime": "2016-08-01T13:56:25.000+0800"
},
{
"id": 1116,
"key": "batch",
"value": "3000",
"comment": "",
"dataChangeCreatedBy": "song_s",
"dataChangeLastModifiedBy": "song_s",
"dataChangeCreatedTime": "2016-07-28T15:13:42.000+0800",
"dataChangeLastModifiedTime": "2016-08-01T13:51:00.000+0800"
}
],
"dataChangeCreatedBy": "song_s",
"dataChangeLastModifiedBy": "song_s",
"dataChangeCreatedTime": "2016-07-20T14:08:13.000+0800",
"dataChangeLastModifiedTime": "2016-07-20T14:08:13.000+0800"
}
]
2.2获取某个Namespace信息
参数说明:
- url_params 参数详情见顶部URL路径参数说明
$url_params = [
'env' => 'ENV',
'appId' => 'APPID',
'clusterName' => 'CLUSTERNAME',
'namespaceName' => 'NAMESPACENAME',];
$result = $namespaces->getOne($url_params);
返回数据示例
{
"appId": "100003171",
"clusterName": "default",
"namespaceName": "application",
"comment": "default app namespace",
"format": "properties", //Namespace格式可能取值为:properties、xml、json、yml、yaml
"isPublic": false, //是否为公共的Namespace
"items": [ // Namespace下所有的配置集合
{
"key": "batch",
"value": "100",
"dataChangeCreatedBy": "song_s",
"dataChangeLastModifiedBy": "song_s",
"dataChangeCreatedTime": "2016-07-21T16:03:43.000+0800",
"dataChangeLastModifiedTime": "2016-07-21T16:03:43.000+0800"
}
],
"dataChangeCreatedBy": "song_s",
"dataChangeLastModifiedBy": "song_s",
"dataChangeCreatedTime": "2016-07-20T14:05:58.000+0800",
"dataChangeLastModifiedTime": "2016-07-20T14:05:58.000+0800"
}
2.3创建Namespace
参数说明:
- appId 所管理的配置AppId
- requestBody 请求内容,json格式传参,详情如下:
请求内容列表(Request Body,JSON格式):
$result = $namespaces->create($appId, $requestBody);
返回数据示例
{
"name": "FX.public-0420-11",
"appId": "100003173",
"format": "properties",
"isPublic": true,
"comment": "test",
"dataChangeCreatedBy": "zhanglea",
"dataChangeLastModifiedBy": "zhanglea",
"dataChangeCreatedTime": "2017-04-20T18:25:49.033+0800",
"dataChangeLastModifiedTime": "2017-04-20T18:25:49.033+0800"
}
2.4获取某个Namespace当前编辑人
参数说明:
- url_params 参数详情见顶部URL路径参数说明
$url_params = [
'env' => 'ENV',
'appId' => 'APPID',
'clusterName' => 'CLUSTERNAME',
'namespaceName' => 'NAMESPACENAME',];
$result = $namespaces->getStatus($url_params);
返回数据示例
- 未锁定 :
{
"namespaceName": "application",
"isLocked": false
}
- 被锁定 :
{
"namespaceName": "application",
"isLocked": true,
"lockedBy": "song_s" //锁owner
}
3.Configuration
实例化
<?php //config参数详情见顶部参数说明 $configuration = OrderHandler\ApolloOpenApi\ApiFactory::configuration($config);
3.1新增配置
属性列表:
- url_params 参数详情见顶部参数说明
- requestBody 请求内容,json格式传参,详情如下:
请求内容列表(Request Body,JSON格式):
$url_params = [
'env' => 'ENV',
'appId' => 'APPID',
'clusterName' => 'CLUSTERNAME',
'namespaceName' => 'NAMESPACENAME',];
$result = $configuration->add($url_params, $requestBody);
返回数据示例
{
"key": "timeout",
"value": "3000",
"comment": "超时时间",
"dataChangeCreatedBy": "zhanglea",
"dataChangeLastModifiedBy": "zhanglea",
"dataChangeCreatedTime": "2016-08-11T12:06:41.818+0800",
"dataChangeLastModifiedTime": "2016-08-11T12:06:41.818+0800"
}
3.2修改配置
属性列表:
- url_params 参数详情见顶部参数说明
- requestBody 请求内容,json格式传参,详情如下:
请求内容列表(Request Body,JSON格式):
$url_params = [
'env' => 'ENV',
'appId' => 'APPID',
'clusterName' => 'CLUSTERNAME',
'namespaceName' => 'NAMESPACENAME',
'key' => 'KEY',];
$result = $configuration->update($url_params, $requestBody);
返回数据示例
无
3.3发布配置
属性列表:
- url_params 参数详情见顶部参数说明
- requestBody 请求内容,json格式传参,详情如下:
请求内容列表(Request Body,JSON格式):
$url_params = [
'env' => 'ENV',
'appId' => 'APPID',
'clusterName' => 'CLUSTERNAME',
'namespaceName' => 'NAMESPACENAME',];
$result = $configuration->release($url_params,$requsetBody);
返回数据示例
{
"appId": "test-0620-01",
"clusterName": "test",
"namespaceName": "application",
"name": "2016-08-11",
"configurations": {
"timeout": "3000",
},
"comment": "修改timeout值",
"dataChangeCreatedBy": "zhanglea",
"dataChangeLastModifiedBy": "zhanglea",
"dataChangeCreatedTime": "2016-08-11T14:03:46.232+0800",
"dataChangeLastModifiedTime": "2016-08-11T14:03:46.235+0800"
}
3.4删除配置
属性列表:
- url_params 参数详情见顶部参数说明
$url_params = [
'env' => 'ENV',
'appId' => 'APPID',
'clusterName' => 'CLUSTERNAME',
'namespaceName' => 'NAMESPACENAME',
'key' => 'KEY',
'operator' => 'OPERATOR',];
$result = $configuration->delete($url_params);
返回数据示例
无