网关及代理服务接口
版本记录
版本号 | 日期 | 修改内容 |
---|
v0.12.2 | 2024-08-30 | 修复已知问题 |
网关/代理服务
获取服务列表
接口功能
从平台中间件中获取服务列表,查询服务的基本信息。
接口地址
URL | {Server}/mw/services |
---|
http 请求方式 | get |
参数
- 请求参数说明
名称 | 类型 | 是否必填 | 描述 |
---|
name | string | 否 | 服务名称 |
- 返回值参数说明
参数名称 | 类型 | 是否必填 | 说明 |
---|
name | string | 是 | 服务名称 |
fullName | string | 是 | 服务名称(全) |
available | boolean | 是 | 服务状态 |
local | boolean | 是 | 是否本地服务 |
nodes | array | 是 | 所在节点 |
settings | object | 是 | 服务的配置信息 |
version | string | 是 | 服务版本 |
示例
示例如下
{
code: 0,
message: 'success',
data: [
{
name: '$node',
version: undefined,
fullName: '$node',
settings: {},
metadata: {},
local: true,
available: true,
nodes: [ 'moleculer-nodejs-14560' ]
},
{
name: 'mw',
version: undefined,
fullName: 'mw',
settings: {},
metadata: {},
local: true,
available: true,
nodes: [ 'moleculer-nodejs-14560' ]
},
{
name: 'api',
version: undefined,
fullName: 'api',
settings: {
port: 3001,
ip: '0.0.0.0',
use: [],
routes: [ [Object] ],
log4XXResponses: false,
logRequestParams: null,
logResponseData: null,
assets: { folder: 'public', options: {} },
server: true,
logRequest: 'info',
logResponse: 'info',
logRouteRegistration: 'info',
http2: false,
httpServerTimeout: null,
requestTimeout: 300000,
optimizeOrder: true,
rootCallOptions: null,
debounceTime: 500
},
metadata: {
'$category': 'gateway',
'$description': 'Official API Gateway service',
'$official': true,
'$package': {
name: 'moleculer-web',
version: '0.10.5',
repo: 'https://github.com/moleculerjs/moleculer-web.git'
}
},
local: true,
available: true,
nodes: [ 'moleculer-nodejs-14560' ]
}
]
}
获取动作列表
接口功能
从平台中间件中获取服务的动作列表,含请求路径和参数信息。
接口地址
URL | {Server}/mw/actions |
---|
http 请求方式 | get |
参数
- 请求参数说明
名称 | 类型 | 是否必填 | 描述 |
---|
service | string | 否 | 服务名称 |
- 返回值参数说明
参数名称 | 类型 | 是否必填 | 说明 |
---|
name | string | 是 | 工作名称 |
available | boolean | 是 | true 或 false |
action | array | 是 | 动作定义 |
params | object | 是 | 对象参数 |
cache | object | 是 | 缓存配置 |
fields | string | 是 | 属性名称 |
type | string | 是 | 属性类型,如 string、object |
获取节点列表
接口功能
支持查看所有的中间件节点(包括本地节点),以列表形式列出所有已知节点(包括本地节点),列表字段包含了节点名称(Node ID)、节点状态(Status)、版本(moleculer 版本 Version)、主机名称(HostName)、CPU。列表支持根据节点名称模糊查询。
接口地址
URL | {Server}/mw/nodes |
---|
http 请求方式 | get |
参数
- 请求参数说明
名称 | 类型 | 是否必填 | 描述 |
---|
name | string | 否 | 节点名称 |
- 返回值参数说明
参数名称 | 类型 | 是否必填 | 说明 |
---|
id | string | 是 | 节点名称 |
instanceID | string | 是 | 实例 ID |
available | boolean | 是 | true 或 false |
local | boolean | 是 | true 或 false |
client | object | 是 | Nodejs 版本 |
metadata | object | 是 | 元数据 |
ipList | array | 是 | ip 列表 |
port | int | 是 | 端口号 |
hostname | string | 是 | 主机名 |
示例
示例如下
{
"code": 0,
"message": "success",
"data": [
{
"id": "gateway-hsm-107-v0.6.4-4",
"instanceID": "038f9e02-7885-4d03-9192-2109ccba5b6c",
"available": true,
"local": true,
"lastHeartbeatTime": 4,
"config": {},
"client": {
"type": "nodejs",
"version": "0.14.29",
"langVersion": "v18.16.1"
},
"metadata": {
"encrypts": ""
},
"ipList": [
"172.21.44.107"
],
"port": 41811,
"hostname": "hsm-107",
"udpAddress": null,
"cpu": 4,
"cpuSeq": 161715,
"seq": 9,
"offlineSince": null
}
]
}
获取状态列表
接口功能
对外提供接入中间件的服务状态,此接口只能返回接入中间件的服务状态,未接入中间件或者接入后服务异常被剔除后的,不会返回其状态。
接口地址
URL | {Server}/mw/status |
---|
http 请求方式 | get |
参数
- 请求参数说明
名称 | 类型 | 是否必填 | 描述 |
---|
name | string | 否 | 服务名称 |
- 返回值参数说明
参数名称 | 类型 | 是否必填 | 说明 |
---|
name | string | 是 | 服务名称 |
fullName | string | 是 | 服务名称(全) |
available | boolean | 是 | 服务是否可用 |
local | boolean | 是 | 是否本地服务 |
nodes | array | 是 | 所在节点 |
settings | object | 是 | 服务的配置信息 |
示例
示例如下
{
"code": 0,
"message": "success",
"data": [
{
"name": "$node",
"fullName": "$node",
"settings": {},
"metadata": {},
"local": true,
"available": true,
"nodes": [
"gateway-hsm-107-v0.6.4-4",
"sdk-model-HSMPORTAL-portal-model-_0",
"proxy-hsm-107-v0.6.4-3",
"proxy-hsm-107-v0.6.4-4",
"proxy-hsm-107-v0.6.4-2",
"gateway-hsm-107-v0.6.4-1",
"gateway-hsm-107-v0.6.4-2",
"proxy-hsm-107-v0.6.4-1",
"gateway-hsm-107-v0.6.4-3",
"sdk-hsm-107-msg1",
"sdk-hsm-107-msg2",
"sdk-hsm-107-msg3",
"sdk-hsm-107-msg4",
"sdk-hsm-107-auth6",
"sdk-hsm-107-auth1",
"sdk-hsm-107-auth5",
"sdk-hsm-107-auth8",
"sdk-hsm-107-auth7",
"sdk-hsm-107-auth4",
"sdk-hsm-107-auth3",
"sdk-hsm-107-auth2"
]
}
]
}
获取服务 schema
接口功能
除了获取整体的 schema 外,还支持获取单个 graphql 类型服务的 schema。
接口地址
URL | {Server}/mw/schema |
---|
http 请求方式 | get |
参数
- 请求参数说明
名称 | 类型 | 是否必填 | 描述 |
---|
service | string | 是 | 服务名称 |
- 返回值参数说明
参数名称 | 类型 | 是否必填 | 说明 |
---|
code | string | 是 | 返回码 |
message | string | 是 | 返回消息 |
data | object | 是 | 返回数据 |
示例
{
"code": 0,
"message": "success",
"data": {
"data": {
"__schema": {
"queryType": {
"name": "Query"
},
"mutationType": {
"name": "Mutation"
},
"subscriptionType": null,
"types": [...
],
"directives": [...
]
}
}
}
}
同步调用
接口功能
从平台中间件中调用其他服务的动作,等同于远程调用一个服务的接口。
接口地址
URL | {Server}/proxy/call |
---|
http 请求方式 | post |
参数
- 请求参数说明
名称 | 类型 | 是否必填 | 描述 |
---|
service | string | 是 | 服务名称 |
action | string | 是 | 动作名称 |
param | string | 是 | url 请求参数 |
body | string | 是 | body 体请求参数 |
method | string | 否 | 默认 Get |
header | string | 是 | 请求头 |
- 返回值参数说明
参数名称 | 类型 | 是否必填 | 说明 |
---|
code | string | 是 | 返回码 |
message | string | 是 | 返回消息 |
data | object | 是 | 返回数据 |
示例
{
"code": 0,
"message": "SUCCESS",
"data": {}
}
缓存清理
接口功能
对于需要缓存的接口,提供接口进行缓存的清理。
接口地址
URL | {Server}/gateway/clearCache |
---|
http 请求方式 | post |
参数
- 请求参数说明
名称 | 类型 | 是否必填 | 描述 |
---|
ids | array | 是 | id 数组,api 接口唯一编码 |
- 返回值参数说明
参数名称 | 类型 | 是否必填 | 说明 |
---|
code | string | 是 | 返回码 |
message | string | 是 | 返回消息 |
示例
{
"code": 0,
"message": "success",
}
检查 gql 请求
接口功能
提供接口检查 gql 请求是否符合要求。
接口地址
URL | {Server}/gateway/checkGql |
---|
http 请求方式 | get |
参数
- 请求参数说明
名称 | 类型 | 是否必填 | 描述 |
---|
name | string | 否 | graphql 接口名 |
type | string | 否 | 查询类型 |
domain | string | 否 | graphql 服务组名 |
- 返回值参数说明
参数名称 | 类型 | 是否必填 | 说明 |
---|
code | string | 是 | 返回码 |
message | string | 是 | 返回消息 |
示例
{
"code": 0,
"message": "SUCCESS",
}
获取静态路由
接口功能
获取注册到网关的静态路由信息。
接口地址
URL | {Server}/gateway/static/routes |
---|
http 请求方式 | get |
参数
- 请求参数说明
无
- 返回值参数说明
参数名称 | 类型 | 是否必填 | 说明 |
---|
code | string | 是 | 返回码 |
message | string | 是 | 返回消息 |
data | object | 是 | 返回数据 |
示例
{
"code": 0,
"message": "SUCCESS",
"data": {}
}