oceanbase/tools/ob-configserver/doc/api_reference.md
2022-05-30 16:44:36 +08:00

314 lines
7.6 KiB
Markdown

# ob-configserver api refenence
For compatibility consideration, ob-configserver uses parameter `Action` to distinguish different type of requests
## Register OceanBase rootservice list
- request url: http://{vip_address}:{vip_port}/services
- request method: POST
- request parameters:
| name | type | required | typical value | description |
| --- | --- | --- | --- | --- |
| Action | String | Yes | ObRootServiceInfo | |
| ObCluster | String | No | obcluster | ob cluster name |
| ObClusterId | int64 | No | 1 | ob cluster id |
| ObRegion | String | No | obcluster | ob cluster name, old format |
| ObRegionId | int64 | No | 1 | ob cluster id, old format |
| version | int | No | 1 | version supports 1 or 2, 2 means with standby ob cluster support |
request body:
```json
{
"ObClusterId": 1,
"ObRegionId": 1,
"ObCluster": "obcluster",
"ObRegion": "obcluster",
"ReadonlyRsList": [],
"RsList": [{
"address": "1.1.1.1:2882",
"role": "LEADER",
"sql_port": 2881
}],
"Type": "PRIMARY",
"timestamp": 1652419587417171
}
```
- response example:
```json
{
"Code": 200,
"Message": "successful",
"Success": true,
"Data": "successful",
"Trace": "xxxx",
"Server": "1.1.1.1",
"Cost": 1
}
```
## Query Oceanbase rootservice list
- request url: http://{vip_address}:{vip_port}/services
- request method: GET
- request parameters:
| name | type | required | typical value | description |
| --- | --- | --- | --- | --- |
| Action | String | Yes | ObRootServiceInfo | |
| ObCluster | String | No | obcluster | ob cluster name |
| ObClusterId | int64 | No | 1 | ob cluster id |
| ObRegion | String | No | obcluster | ob cluster name, old format |
| ObRegionId | int64 | No | 1 | ob cluster id, old format |
| version | int | No | 1 | version supports 1 or 2, 2 means with standby ob cluster support |
- response example:
```json
# return one item, when version=1 or version=2 and ObClusterId specified
{
"Code": 200,
"Message": "successful",
"Success": true,
"Data": {
"ObClusterId": 1,
"ObRegionId": 1,
"ObCluster": "obcluster",
"ObRegion": "obcluster",
"ReadonlyRsList": [],
"RsList": [{
"address": "1.1.1.1:2882",
"role": "LEADER",
"sql_port": 2881
}],
"Type": "PRIMARY",
"timestamp": 1652419587417171
},
"Trace": "xxxx",
"Server": "1.1.1.1",
"Cost": 1
}
# return a list when version=2 and ObClusterId not specified
{
"Code": 200,
"Message": "successful",
"Success": true,
"Data": [{
"ObClusterId": 1,
"ObRegionId": 1,
"ObCluster": "obcluster",
"ObRegion": "obcluster",
"ReadonlyRsList": [],
"RsList": [{
"address": "1.1.1.1:2882",
"role": "LEADER",
"sql_port": 2881
}],
"Type": "PRIMARY",
"timestamp": 1652419587417171
}, {
"ObClusterId": 2,
"ObRegionId": 2,
"ObCluster": "obcluster",
"ObRegion": "obcluster",
"ReadonlyRsList": [],
"RsList": [{
"address": "2.2.2.2:2882",
"role": "LEADER",
"sql_port": 2881
}],
"Type": "STANDBY",
"timestamp": 1652436572067984
}],
"Trace": "xxxx",
"Server": "1.1.1.1",
"Cost": 1
}
```
## Delete OceanBase rootservice info
- request url: http://{vip_address}:{vip_port}/services
- request method: DELETE
- request parameters:
| name | type | required | typical value | description |
| --- | --- | --- | --- | --- |
| Action | String | Yes | ObRootServiceInfo | |
| ObCluster | String | No | obcluster | ob cluster name |
| ObClusterId | int64 | No | 1 | ob cluster id |
| ObRegion | String | No | obcluster | ob cluster name, old format |
| ObRegionId | int64 | No | 1 | ob cluster id, old format |
| version | int | No | 1 | only version=2 is supported, and don't forget to specify ObClusterId |
- response example:
```json
{
"Code": 200,
"Message": "successful",
"Success": true,
"Data": "successful",
"Trace": "xxxx",
"Server": "1.1.1.1",
"Cost": 1
}
```
## Query rootservice info of all OceanBase clusters
- request url: http://{vip_address}:{vip_port}/services
- request method: GET/POST
- request parameters:
| name | type | required | typical value | description |
| --- | --- | --- | --- | --- |
| Action | String | Yes | GetObProxyConfig | |
| VersionOnly | Boolean | No | false | only return version |
- response example:
```json
# return all info
{
"Code": 200,
"Message": "successful",
"Success": true,
"Data": {
"ObProxyBinUrl": "http://1.1.1.1:8080/client?Action=GetObProxy",
"ObProxyDatabaseInfo": {
"DataBase": "***",
"MetaDataBase": "http://1.1.1.1:8080/services?Action=ObRootServiceInfo&User_ID=alibaba&UID=admin&ObRegion=obdv1",
"Password": "***",
"User": "***"
},
"ObRootServiceInfoUrlList": [{
"ObRegion": "obcluster",
"ObRootServiceInfoUrl": "http://1.1.1.1:8080/services?Action=ObRootServiceInfo&ObCluster=obcluster"
}],
"Version": "07c5563d293278097dc84e6b64ef6341"
},
"Trace": "xxxx",
"Server": "1.1.1.1",
"Cost": 1
}
# return version only
{
"Code": 200,
"Message": "successful",
"Success": true,
"Data": {
"Version": "07c5563d293278097dc84e6b64ef6341"
},
"Trace": "xxxx",
"Server": "1.1.1.1",
"Cost": 1
}
```
## Query rootservice info of all OceanBase clusters in template format
- request url: http://{vip_address}:{vip_port}/services
- request method: GET/POST
- request parameters:
| name | type | required | typical value | description |
| --- | --- | --- | --- | --- |
| Action | String | Yes | GetObRootServiceInfoUrlTemplate | |
| VersionOnly | Boolean | No | false | only return version |
- response example:
```json
# return all info
{
"Code": 200,
"Message": "successful",
"Success": true,
"Data": {
"ObProxyBinUrl": "http://1.1.1.1:8080/client?Action=GetObProxy",
"ObProxyDatabaseInfo": {
"DataBase": "***",
"MetaDataBase": "http://1.1.1.1:8080/services?Action=ObRootServiceInfo&User_ID=alibaba&UID=admin&ObRegion=obdv1",
"Password": "***",
"User": "***"
},
"Version": "b34e6381994003c5d758890ededb82a4",
"ObClusterList": ["obcluster"],
"ObRootServiceInfoUrlTemplate": "http://1.1.1.1:8080/services?Action=ObRootServiceInfo&ObRegion=${ObRegion}",
"ObRootServiceInfoUrlTemplateV2": "http://1.1.1.1:8080/services?Action=ObRootServiceInfo&version=2&ObCluster=${ObCluster}&ObClusterId=${OBClusterId}"
},
"Trace": "xxxx",
"Server": "1.1.1.1",
"Cost": 1
}
# versiononly
{
"Code": 200,
"Message": "successful",
"Success": true,
"Data": {
"Version": "b34e6381994003c5d758890ededb82a4"
},
"Trace": "xxxx",
"Server": "1.1.1.1",
"Cost": 1
}
```
## Query idc and region info (empty implementation, just for compatibility)
- request url: http://{vip_address}:{vip_port}/services
- request method: GET/POST
- request parameters:
| name | type | required | typical value | description |
| --- | --- | --- | --- | --- |
| Action | String | Yes | ObIDCRegionInfo | |
| ObCluster | String | No | obcluster | ob cluster name |
| ObClusterId | int64 | No | 1 | ob cluster id |
| ObRegion | String | No | obcluster | ob cluster name, old format |
| ObRegionId | int64 | No | 1 | ob cluster id, old format |
| version | int | No | 1 | version supports 1 or 2, 2 means with standby ob cluster support |
- response example:
```json
# return single item when version=1 or version=2 and ObClusterId specified
{
"Code": 200,
"Message": "successful",
"Success": true,
"Data": {
"ObRegion": "obcluster",
"ObRegionId": 2,
"IDCList": [],
"ReadonlyRsList": ""
},
"Trace": "xxxx",
"Server": "1.1.1.1",
"Cost": 1
}
# return a list when version=2 and ObClusterId not specified
{
"Code": 200,
"Message": "successful",
"Success": true,
"Data": [{
"ObRegion": "obcluster",
"ObRegionId": 1,
"IDCList": [],
"ReadonlyRsList": ""
}, {
"ObRegion": "obcluster",
"ObRegionId": 2,
"IDCList": [],
"ReadonlyRsList": ""
}],
"Trace": "xxxx",
"Server": "1.1.1.1",
"Cost": 1
}
```