API参考
概述
目的
ICHIP REST接口可以很方便的对能力集成中枢平台的资源进行管理。
本文档描述了能力集成中枢平台ICHIP产品对外提供的所有API(REST)接口,方便开发者查询和二次开发。
使用对象
该文档是能力集成中枢平台ICHIP产品的API(REST)手册。
该文档使用对象为:使用能力集成中枢平台ICHIP产品的开发人员。
术语定义
ICHIP:ICHIP是Inspur Capability Hub Integration Platform的简称,中文名称为能力集成中枢平台,是一个全栈式的中枢平台,把企业、政府、物联网、互联网等实时产生数据,利用能力中枢统一集成,拉通数据传输、数据湖、AI能力,提供统一开放、统一展示,满足企业和政府实现一体化的数字化转型。
应用:实现同一用户内的资源隔离,用户的数据源、服务、API、消息等资源都属于某一个应用。
API: 具有功能独立、能被调用的信息单元,一个 API(Application Programming Interface,应用编程接口)是软件(应用)中的一系列特性和规则,这些特性和规则允许其他软件与之交互(与用户界面相对)。API 可被视为提供它的应用与其他软硬件之间的一个简单的合约(接口)。
生产者:生产者为向消息主题(Topic)发布消息的一方,发布消息的最终目的在于将消息内容传递给其他系统,使对方能按照约定处理该消息。
消费者:消费者为从消息主题(Topic)订阅消息的一方,订阅消息的最终目的在于处理消息内容。如日志集成场景中,监控告警平台作为消费者从Topic订阅日志消息,识别出告警日志并发送告警消息/邮件。
REST:Representational State Transfer,简称REST,即表现层状态转化,是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
外部接口: 本软件系统与其他软件系统之间的接口,接口设施可以是中间件。接口描述包括:传输方式、带宽、数据结构、传输频率、传输量、传输协议。
内部接口: 软件系统内部各子系统之间、各部件之间、各模板之间的接口,叫做内部接口。接口描述包括:调用方式、入口信息、出口信息等。
服务编排: 从具体业务应用场景出发,将API排列、聚合,最终配置成满足业务场景需要的业务规则。
API定义
1.除非特殊说明,所有接口都需传 token
2.响应默认包含 "code" "message" "data" "status" ,部分响应示例可能省略
3.如出现请求路径、请求参数与请求示例不一致的情况,以小标题“URL”内容为准
概览页
1.数据概览
查看统计数据
URI
GET /statistics/countData
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | "appCount" 应用数量 "groupCount" API分组数量 "sevenCount" 近7天请求次数 "apiCount" API数量 "todayCount" 今日请求次数 "yesterdayCount" 昨日请求次数 |
示例
请求示例
URL
/statistics/countData
{}
响应示例
{
"appCount": 3,
"groupCount": 34,
"sevenCount": 146,
"apiCount": 84,
"todayCount": 0,
"yesterdayCount": 0
}
应用管理
新建应用
描述
- 创建应用
URI
POST /app
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
name | body | String | 是 | 应用名称 |
description | body | String | 否 | 应用描述 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | app对象 |
示例
请求示例
URL /app
{
"name": "新应用",
"description": "应用描述。"
}
响应示例
{
"id": "m00dc86f-735e-tt7a-bd9d-28b98540620e",
"name": "新应用",
"description": "应用描述",
"appKey": "2569372886",
"appSecret": "8f5dc3850d504f139cd43b0a4a858dd2",
"userId": "1d44bfda-8fd2-4e2b-a99c-21bdf690c753",
"rootUserId": "1d44bfda-8fd2-4e2b-a99c-21bdf690c753",
"region": “cn-north-3”,
"createdTime": "2019-06-24T03:03:07Z",
"updatedTime": null,
"isDeleted": "0"
}
分页查询应用名称列表
描述
- 查询当前用户的应用列表,并进行分页展示
URI
GET /app/{pageNo}/{pageSize}?name={appName}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
pageNo | path | Integer | 是 | 当前页码数 |
pageSize | path | Integer | 是 | 每页上应用的条数 |
name | query | String | 否 | 搜索条件的应用名称(URL-encoded) |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object(Page) | 是 | 实例视图对象分页 |
示例
正确请求示例
URL
/app/1/10?name=1
正确响应示例
{
"pageNo": 1,
"pageSize": 10,
"totalCount": 2
"data": [
{
"id": "m00dc86f-735e-tt7a-bd9d-28b98540620e",
"appName": "应用 1",
"appDescription": "应用描述 z",
"apiCount": 1,
"createdTime": "2019-06-24T03:03:07Z",
"isManual": "1"
},
{
"id": "m00dc86f-735e-tt7a-bd9d-28b98540620e",
"appName": "云市场 123",
"appDescription": null,
"apiCount": 5,
"createdTime": "2019-06-24T03:03:07Z",
"isManual": "0"
}
]
}
删除应用
描述
- 删除一个或多个 api
URI
POST /app/action/delete
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
apps | body | String | 是 | 要删除的应用资源集合名称 |
id | body | String | 是 | 要删除的应用id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
a.删除一个应用
URL
/app/action/delete
{
"apps": [
{
"id": "5t3rd19-5eae-495f-85e8-9f5c3c8df8a1",
}
]
}
b.批量删除多个应用
URL /app/action/delete
{
"apps": [
{
"id": "5t3rd19-5eae-495f-85e8-9f5c3c8df8a1",
},
{
"id": "97c747b9-5eae-495f-85e8-9f5c3c8df8a1"
}
]
}
成功响应示例
{
"code": "200",
"message": ""
}
失败响应示例
{
"requestId": "5t3rd19-5eae-495f-85e8-9f5c3c8df8a1",
"code": "702.001081",
"message": "选择的应用中存在已绑定 api 的应用,请解绑后再删除"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.001081 | 选择的应用中存在已绑定api的应用,请全部解绑后再进行删除操作 | 500 | 无 |
编辑应用
描述
- 修改应用信息
URI
PATCH /app/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 从前端获取的要编辑的应用id |
name | body | String | 是 | 从前端获取的应用名称 |
description | body | String | 否 | 从前端获取的应用描述 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | app对象 |
示例
请求示例
URL
/app/97c747b9-5eae-495f-85e8-9f5c3c8df8a1
{
"name" : "applicationName",
"description" : "123"
}
响应示例
{
"id": "m00dc86f-735e-tt7a-bd9d-28b98540620e",
"name": "新应用",
"description": "应用描述",
"appKey": "2569372886",
"appSecret": "8f5dc3850d504f139cd43b0a4a858dd2",
"userId": "1d44bfda-8fd2-4e2b-a99c-21bdf690c753",
"rootUserId": "1d44bfda-8fd2-4e2b-a99c-21bdf690c753",
“region”: “cn-north-3”,
"createdTime": "2020-06-23T03:03:07Z",
"updatedTime": "2020-06-23T09:03:07Z",
"isDeleted": "0"
}
查询应用详情
描述
- 查询某个应用详情
URI
GET /app/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 要查看详情的应用ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object(AppBasicInfoEO) | 是 | 应用对象 |
示例
请求示例
URL
/app/b37b7580-8a4b-4c0f-b5e5-13d7eef8fd98
响应示例
{
"id": "m00dc86f-735e-tt7a-bd9d-28b98540620e",
"name": "新应用",
"description": "应用描述",
"appKey": "2569372886",
"appSecret": "8f5dc3850d504f139cd43b0a4a858dd2",
"userId": "1d44bfda-8fd2-4e2b-a99c-21bdf690c753",
"rootUserId": "1d44bfda-8fd2-4e2b-a99c-21bdf690c753",
"createdTime": "2020-06-23T03:03:07Z",
"updatedTime": null,
"isDeleted": "0"
}
应用名称重复校验
描述
- 校验应用名称是否唯一
URI
POST /app/action/verify-name
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 否 | id |
name | body | String | 是 | api名称 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
repeated | body | Object | 是 | 是否重复 |
示例
请求示例
URL
/app/action/verify-name
{
"name":"名称",
"id":"b74265ca-65a1-41aa-a249-1918a6af4583"
}
响应示例
{
"repeated":true
}
分页查询已绑定API列表
绑定API
9.解绑API
分组管理
新建分组
给当前用户新建一个 api 分组
URI
POST /apigroup
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
name | body | String | 是 | 从前台获取的分组名称 |
description | body | String | 否 | 从前台获取的分组描述 |
appId | body | String | 是 | api分组绑定的应用id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api分组对象 |
示例
请求示例
URL
/apigroup
{
"name" : "新分组",
"description" : "这是新创建的 api 分组",
"appId" : "a0a1f058-04c5-4d68-974f-b87b8c34bcfa"
}
响应示例
{
"id": "de0dc86f-735e-467a-bd9d-28b98540620e",
"userId": "111",
"rootUserId": "222",
"userName": "222",
"rootUserName": null,
"name": "整改测试分组",
"description": "123",
"categoryId" : "5ewwc86f-735e-467a-bd9d-28b98540620e"
"regionBelongsTo": "华北三",
"secondaryDomainName": "de0dc86f-735e-467a-bd9d-28b98540620e.dev-1.inspurapigate.com",
"createdTime": "2019-06-24T03:03:07Z",
"updatedTime": null,
"isDeleted": "0",
"appId" : "a0a1f058-04c5-4d68-974f-b87b8c34bcfa"
}
分页查询 api 分组列表
描述
- 查询当前用户的 api 分组,并进行分页展示
URL
GET /apigroup/{pageNo}/{pageSize}?appId={appId}&name={groupName}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
pageNo | path | Integer | 是 | 当前页码数 |
pageSize | path | Integer | 是 | 每页上api分组的条数 |
name | query | String | 否 | 搜索条件的分组名称(URL-encoded) |
appId | query | String | 否 | api分组绑定的应用id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object(Page) | 是 | 实例视图对象分页 |
示例
正确请求示例
URL
/apigroup/1/10?appId=a0a1f058-04c5-4d68-974f-b87b8c34bcfa
正确响应示例
{
"pageNo": 1,
"pageSize": 10,
"totalCount": 3
"data": [
{
"groupName": "新分组",
"groupDescription": "这是新创建的 api 分组",
"apis": [],
"secondaryDomainName": "03db455b-36cd-4e62-98e7-c0fcfd7961ee.dev-1.inspurapigate.com",
"apiCount": 0,
"createdTime": "2019-06-24T11:39:55Z",
"id": "03db455b-36cd-4e62-98e7-c0fcfd7961ee",
"regionBelongsTo": "华北三",
"categoryId": "257a4a80-8434-444f-90d5-4334c8db5542"
"categoryName": "人工智能",
"appId" : "a0a1f058-04c5-4d68-974f-b87b8c34bcfa",
"docFlag": false,
"exportApiFlag": false,
},
{
"groupName": "整改测试分组",
"groupDescription": "123",
"apis": [],
"secondaryDomainName": "082a4580-8434-444f-90d5-4334c8db5542.dev-1.inspurapigate.com",
"apiCount": 0,
"createdTime": "2019-06-24T11:24:21Z",
"id": "082a4580-8434-444f-90d5-4334c8db5542",
"regionBelongsTo": "华北三",
"categoryId": "222a4a80-8434-444f-90d5-4334c8db5542",
"categoryName": "工业互联网",
"appId" : "a0a1f058-04c5-4d68-974f-b87b8c34bcfa",
"docFlag": false,
"exportApiFlag": false,
}
]
}
删除分组
删除一个 api 分组
URI
DELETE /apigroup/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | api分组ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例 1
URL
/apigroup/97c747b9-5eae-495f-85e8-9f5c3c8df8a1
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.006002 | 删除分组失败,分组下有api,先删除api才可删除分组 | 500 | 无 |
编辑分组
URI
PATCH /apigroup/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 要编辑的分组id |
name | body | String | 是 | 分组名称 |
description | body | String | 否 | 分组描述 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api分组对象 |
示例
请求示例
URL
/apigroup/8a8082906abf3515016abf3641230000
{
"name" : "aawe",
"description" : "123
}
响应示例
{
"id": "de0dc86f-735e-467a-bd9d-28b98540620e",
"userId": "111",
"rootUserId": "222",
"userName": "222",
"rootUserName": null,
"name": "整改测试分组",
"description": "123",
"regionBelongsTo": "华北三",
"secondaryDomainName": "de0dc86f-735e-467a-bd9d-28b98540620e.dev-1.inspurapigate.com",
"createdTime": "2019-06-24T03:03:07.724+0000",
"updatedTime": null,
"isDeleted": "0",
"appId" : "a0a1f058-04c5-4d68-974f-b87b8c34bcfa"
}
查询 api 分组详情
查看某个 api 分组详情
URI
GET /apigroup/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 要查看详情的apiGroupID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api分组对象 |
示例
请求示例 1
URL
/apigroup/b37b7580-8a4b-4c0f-b5e5-13d7eef8fd98
响应示例
{
"id": "b37b7580-8a4b-4c0f-b5e5-13d7eef8fd98",
"userId": "1111",
"rootUserId": "222",
"userName": "testDemo",
"rootUserName": null,
"name": "test08",
"description": "code debug",
"region": "cn-north-3",
"secondaryDomainName": "b37b7580-8a4b-4c0f-b5e5-13d7eef8fd98.dev-3.inspurapigate.com",
"createdTime": "2020-05-19T03:06:30Z",
"updatedTime": null,
"isDeleted": "0",
"availabilityZone": "cn-north-3a",
"categoryId": "222",
"appId" : "a0a1f058-04c5-4d68-974f-b87b8c34bcfa"
}
分组名称重复校验
校验分组名称是否唯一
URI
POST /apigroup/action/verify-name
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 否 | id |
name | body | String | 是 | api分组名称 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
repeated | body | Boolean | 是 | 是否重复 |
示例
请求示例
URL
/apigroup/action/verify-name
{
"name":"名称",
"id":"b74265ca-65a1-41aa-a249-1918a6af4583"
}
响应示例
{
"repeated":true
}
API 域名列表查询
描述
- 查询当前 API 可用的域名列表
URI
GET /api/{apiId}/domains
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
apiId | path | String | 是 | api的id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | list | 是 | 域名对象列表 |
示例
请求示例
URL
/api/402809817272bff3017272d75f7b0000/domains
响应示例
[
{
"domainName": "www.lc-apig-test.club",
"env": "1"
},
{
"domainName": "5467ac5b-dfe4-4be5-aa78-9176a249b345.dev.inspurcloud.cn",
"env": "2"
}
]
查看 API 分组域名列表
展示 API 分组域名列表
URI
GET /apigroup/{groupId}/domains
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupId | path | String | 是 | 分组ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | List | 是 | 域名对象列表 |
示例
正确请求示例
URL
/apigroup/2c9180896ae91a30016b07ba44a60014/domains
正确响应示例
[
{
"domainName": "apig.momo.cool",
"id": "555e7984-8312-4089-988e-979538b415dc",
"sslFingerprint": null,
"cnameAnlysis": "0"
}
]
绑定域名
给当前分组绑定一个域名
URI
POST /apigroup/{groupId}/domains
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupId | path | String | 是 | 分组ID |
domainName | body | String | 是 | 域名 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 域名对象 |
示例
正确请求示例
URL
/apigroup/2c9180896ae91a30016b07ba44a60014/domains
{"domainName":"apig.momo.cool"}
正确响应示例
{
"id": "555e7984-8312-4089-988e-979538b415dc",
"groupId": "49f75d57-d005-40fc-bcf4-2b4cf7e8163b",
"domainName": "apig.momo.cool",
"cnameAnlysis": "0",
"sslCertificate": null,
"sslFingerprint": null,
"sslKey": null,
"rootCertificatr": null,
"createdTime": "2019-06-28T07:44:48.707+0000",
"updatedTime": null,
"isDeleted": "0"
}
解除绑定域名
解除绑定一个域名
URI
DELETE /domains/{domainId}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
domainId | path | String | 是 | 域名ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
正确请求示例
URL
/domains/2c9180896ae91a30016b07ba44a60014
上传证书
给一个域名上传证书
URI
POST /domains/{domainId}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
domainId | path | String | 是 | 域名ID |
sslCertificate | body | String | 是 | 证书 |
sslKey | body | String | 是 | 私钥(需和证书匹配) |
rootCertificatr | body | String | 否 | 根证书 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 域名对象 |
示例
正确请求示例
URL
/domains/2c9180896ae91a30016b07ba44a60014
{
"sslCertificate":"-----BEGIN CERTIFICATE-----
MIIGSjCCBTKgAwIBAgISA4GW9BNCk+h2ILiRVo7HetkOMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xOTAzMjAwMTM0MDdaFw0x
OTA2MTgwMTM0MDdaMBQxEjAQBgNVBAMTCW1vbW8uY29vbDCCAiIwDQYJKoZIhvcN
AQEBBQADggIPADCCAgoCggIBAMS1EkCbUjH9AfadpunQ8ASdb1erV8NpK5zd2zvP
ciTL+lWcVdMDyAhGwn9bdsL8qr51i65ohh4CFYbR7d5Y+L83Y2tVHHaIoi4otWO+
nconi30uehfxhzV4E/Fw7EzselxsrPsdPkAjq6GwJkq0PsvAXfYPuE+wiv7R/5Ew
Aa//WCo0NZVzpzOyL8QNpYLpBWCDksu3Et5BhtNJHW8KohZXdC+ZW6Q41Xjp64Ry
hgT/4WPbzyP/URdC1Y+gLI7Rgo3rKRuIqHlOpm6rye/cqV4fWt7eo0TSH4IplLJr
ev1pGNFfX9HywNZY0iCxrtWzOCj/pArohIhX2AwuiIt1EpDdopDpzjAyWKbKzcG1
lRvFHDkAnGkHX3+s3QTB8zlxoTIU8URBuLoXBhPuqIsglF+ZqXNkcniICU3iBp82
bg6bIPFfVqf6U+1N8JI9pKQyzSm+NHvSXoYQmheJwtlXf5b/MlKm71/iR40hnrrk
z8c+tKOH++PA8CH85Gom8SSuugE+Z2w/Dq+RcL5wW/HC5ODdxrQU4jCMTuB+cel6
F/abgGdEp1myDMu/NqT/9XTtQrpqUZRl8ZlFHte17PLwYkHkrfI/MOt+91b244R1
vBAiGOTlZlNaKm0I4XtIsCpH646aTdyNooMzTQRajgyscY4HtIQ1EomnNp9C0tT+
9GuZAgMBAAGjggJeMIICWjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYB
BQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAv9IKyhr2oe
Cb4LUtD/ITP15+eXMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMG8G
CCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgzLmxl
dHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgzLmxl
dHNlbmNyeXB0Lm9yZy8wFAYDVR0RBA0wC4IJbW9tby5jb29sMEwGA1UdIARFMEMw
CAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly9j
cHMubGV0c2VuY3J5cHQub3JnMIIBBAYKKwYBBAHWeQIEAgSB9QSB8gDwAHYAdH7a
gzGtMxCRIZzOJU9CcMK//V5CIAjGNzV55hB7zFYAAAFpmPLfugAABAMARzBFAiBW
p3W9Iu7lN5nr92GHrXHcL6fBBIIFTxLEiukuAIyNfgIhAIkDaPXby3KbcBXK+qPU
FuivQlR7MJiHMVvYNQ9fMY3PAHYAKTxRllTIOWW6qlD8WAfUt2+/WHopctykwwz0
5UVH9HgAAAFpmPLfnAAABAMARzBFAiEA7GT6W2qKz8Kth4bPE50PcWLekMA2z1g/
Ou7ia1A4VfwCIC+PK6QUMP2mhTdonvp7T2/pybbv8dExc70pyj3BjVYMMA0GCSqG
SIb3DQEBCwUAA4IBAQBbtHWicrfOCcfYyu/VkJvFTdGhZL7N9RA5JQ+Uoab0LIea
pRRGMknx7e8qRXZkkGqYI/P9E59UjCiSxmCOVjUhrjLDlg/Sw8x0qxXHl6ZJYued
1EsQokeJkT9w7TVJur3V7PqgNxLdBBfgDNOsGh5n1u2HkdHPAVBfInjxWES2acMH
m0GgriWYG1ussHZkTULJs4caXVQ3ErNUDHVsEDVaCyoi4uvpuRx4PWgYKT5baZYk
Mq+9uSrx4nyzhJXjNqrq8WDKnuB0TTt8BZRjn3TjcflotB3fGU7kj8idUgeeUwQj
dG8YYbrEaZIe7gtQd8VtocXoE/If3mmN6X4DFOrK
-----END CERTIFICATE-----",
"sslKey":"-----BEGIN PRIVATE KEY-----
MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQDEtRJAm1Ix/QH2
nabp0PAEnW9Xq1fDaSuc3ds7z3Iky/pVnFXTA8gIRsJ/W3bC/Kq+dYuuaIYeAhWG
0e3eWPi/N2NrVRx2iKIuKLVjvp3KJ4t9LnoX8Yc1eBPxcOxM7HpcbKz7HT5AI6uh
sCZKtD7LwF32D7hPsIr+0f+RMAGv/1gqNDWVc6czsi/EDaWC6QVgg5LLtxLeQYbT
SR1vCqIWV3QvmVukONV46euEcoYE/+Fj288j/1EXQtWPoCyO0YKN6ykbiKh5TqZu
q8nv3KleH1re3qNE0h+CKZSya3r9aRjRX1/R8sDWWNIgsa7Vszgo/6QK6ISIV9gM
LoiLdRKQ3aKQ6c4wMlimys3BtZUbxRw5AJxpB19/rN0EwfM5caEyFPFEQbi6FwYT
7qiLIJRfmalzZHJ4iAlN4gafNm4OmyDxX1an+lPtTfCSPaSkMs0pvjR70l6GEJoX
icLZV3+W/zJSpu9f4keNIZ665M/HPrSjh/vjwPAh/ORqJvEkrroBPmdsPw6vkXC+
cFvxwuTg3ca0FOIwjE7gfnHpehf2m4BnRKdZsgzLvzak//V07UK6alGUZfGZRR7X
tezy8GJB5K3yPzDrfvdW9uOEdbwQIhjk5WZTWiptCOF7SLAqR+uOmk3cjaKDM00E
Wo4MrHGOB7SENRKJpzafQtLU/vRrmQIDAQABAoICAG6/i5E4YaSnUA2rYShPbHMM
uH1hiL4KXnWpKx+XgipZdY3xwRhXDq4qOKM/ubO6Ud99irEdRDVs8vW/B++hpBr0
clMhzi6markWTlnkHi6M6SoHmtIUOA3Ql1nePAxrL9ENlq6jHkM6Ug1sgYKZzKkm
m0BIRXsIaJljXkI+BxUx7E+GqYyFWuPuNJprHH6B93cJXQK5BjSALAqVJa85C10M
y+toqoHhRb8X5HPjjrUN47Y3MX6Q5vTzug1tHukh6CFC/xfzbvctYuL4cW9Mi0bk
3GKSctXyf67m/kMd5Fb8bu6ihe5MgGmuBFBH+alzh/D9TTyfAM9KtebV5CawOUy9
6DOmmSd/SoZg7x95H9TiwoMMdpui6fPIZ4VOfE60MeXIbe2XGe5TZwe9cHf0tN0D
HjqOMGpqIW10PONMigOpN3sONxeoHKBTI8jz4PNDZ/i9mJF/5/NDNctzSaIqgOW+
4+1j0vRrVVlZggT4EPv/YOkx1f6efmQ7EEW3YbeZWnNe7eOdINA8b46KOTwPBwdc
TN1PitusO2o8KTFvWSM/DGIqt6dQsDLG1igTmUmRAFg6QBdarS97wRcOvWcBmaZu
FHzg8oaLZMn+J8p2ijqvtHf8XZ59/4UqXXzeYpvyBFY3+RjAQ8ExuFwv/hbV+hlR
2S/zqsjkalB9YCSMRqYhAoIBAQDi7D0dYdOtCeC62OqhMmADAkwxesEJyJZtrmBo
2R2AQDonBeQ7FWowhIeSoaCpXzy7DoVv2ZdW62t14lbCSXUhgOWFwR2JJCBGAkWH
obndBeutTXPiexRA3QMaTeUx+5Ui7GwO9TzPa1jl42sVWYmGYLXL+DSxJXgS6P36
IOjryAZDCuqFZGOZgP2n67bITyUMi9jEuIJWN9Id9Ltjc5ipMObr/d7ZuQA8H5Kh
GMDkB5pljIMlFlyNZtTogyIkMNlXT/52woKj1KgVnBmOon2sZsaNIK0Gm7V3UZTB
EU9Ft29VvZUi6SRF7F+mekwS7FzTeob6T9t9T9AQqTuFAlXlAoIBAQDd6awEZNN2
p4cG6aOqwHdi+JF4TBo8WpnNv/78lDJV3YGs0JgXkfF24Jr+2P1+2PyuxATVkEIn
eVSuNBPFKAaIWon/5R79v+MfkzBH/RDMEDrLVSFTt4TFpLHoWgmx9kn9ZcWuaY9x
pjw0xTAvqkanWeCk43lp0A52w/RUZFcMYI3PISepkOTf1c/XDS5O43Nxu6vP/Pop
VJRaf5x0goThrPnkrEvmXANpYpfOA5cBWZakJfsS81a+ICU3XjP9qB4/ZBCin4G4
9ppg4o/Wrf8DSxOrFlqijdIn7spgRYTY/VoAz7cmz54xJsRPiv9qkivVlotJelcj
bU3U0EskleOlAoIBAQCiJIMWt4v0nJZDbDNasw//lmizAi9kujsia/LfeCOoPDxR
HdiSjx6tREVK9MpDu5U9Y4bdAPEuXlEOjofHk41qPxvBktdz4qhc3cqou1p/H3fj
APDI54D1R/armPUn3cgWiDA+D+U/oEiJGxKs0ql9pyS/db7QxSEjAfBYBaPotagj
x20Dm1O/n3efwMF+J28lo9dj2SLoUEKGvRQYX8S5QAQApAnUMGiGjVjMW0+YoAYm
gVxD59KCBvQin3CJw43I4ZPFb/7A6Xag2kU4scpyoY1F0g9QJXpoo5ZSzfeCrSuU
bD5gD46nl9pQrhole1ZolahUuzLuO1VEUmgBBkYxAoIBAFYVgoxFzJ5XyJKO6dWg
Se/TuyKuavMEtmtRUooKtygGAHrYhFeIXuIdqSK5bETbydHF6pYqGu+TKp1VSGIP
79DPRn9FE2ueF241O+KBMhXnKdec04vVQiUliXo4C1DE2Nj6tN++xU1yDiLuZ43m
APiEbheown2gnyvFQi/GqNn9TqWOGAO4WIDYQYML8u3ZX/w7sB/D5AtKay5cGIY9
52xgHKRvjhXzlcM44uihDeARL9XHgglM6lZgw+8hlQuOPwWaPLXJKJpm12ZEHUZL
QwS1CBEzX791QpQJFuqXrTw7s8Fi0oq0uYoZnse4hPKDd4uolanQUqNEkI/AqZWs
q50CggEAeaZOROR4uKzpGEJOaJbR/fLHeb9zx+pouK3OaDN6GybVk+qInbEyKZb5
ZU3jovNi3LfjYNhjdO13SlG029/HXyC3n550zgNwn4Lwh/ZhGZjStD2ttH528f4t
uUH/4AEStWdlYjVIn+0C5GdvaFhMwKej/TKyDoh+iNFPGdeb1BwX9e0Ho3HnxT3l
OuK6l3FIT6MmOMheNOZp/uqGIjYA1jy/x90nR+VzTi7aHVdwGGdQJWkmCXfm9voB
oil/0OfuO0JxB4Qiw1zMGAqi9hAgUkPBWs4Fy5K3dM+nLp8Tr8ctg76/paRYiVZy
jotCW/rPW7O2BH0g86Ce6B/neC5LbQ==
-----END PRIVATE KEY-----",
"rootCertificatr":""
}
正确响应示例
{
"id": "555e7984-8312-4089-988e-979538b415dc",
"groupId": "49f75d57-d005-40fc-bcf4-2b4cf7e8163b",
"domainName": "apig.momo.cool",
"cnameAnlysis": "0",
"sslCertificate": null,
"sslFingerprint": null,
"sslKey": null,
"rootCertificatr": null,
"createdTime": "2019-06-28T07:44:48.707+0000",
"updatedTime": null,
"isDeleted": "0"
}
查看环境列表
展示环境列表
URI
GET /apigroup/{id}/env
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 分组ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 环境对象信息 |
示例
正确请求示例
URL
/apigroup/2c9180896ae91a30016b07ba44a60014/env
正确响应示例
"test": [
"07098c6d-1eb5-4939-b6a3-3df50af60992.apig-native-test.inspurcloud.cn"
],
"online": []
生成API文档
描述
- 导出分组发布线上环境的API
URI
GET /v1/apigroup/{id}/action/export-doc?env=1
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupId | path | String | 是 | API分组ID |
env | query | String | 是 | 发布环境,此处传1即可 |
示例
请求示例
URL
/v1/groups/d7524100-2f70-4818-abe3-3cf239198f68/apis/action/export-doc?env=1
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.006005 | 不存在api | 500 | |
702.001002 | 没有找到该ID对应资源 | 500 |
API管理
新建 api
新建一个 api
URI
POST /apigroup/{groupId}/api
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupId | path | String | 是 | api分组ID |
name | body | String | 是 | api名称 |
style | body | String | 是 | 风格(0- restful 1-aws风格) |
authenticationMode | body | String | 是 | 认证方式(0-免鉴权 1-IAM认证 2-APP认证) |
backendAddr | body | String | 是 | 后端地址 |
backendPath | body | String | 是 | 后端路径 |
backendRequestMethod | body | String | 是 | 后端请求方法(0-GET 1-POST 2- PATCH 3-PUT 4-OPTIONS 5-DELETE 6-HEAD 7- ANY) |
backendTimeout | body | String | 是 | 后端超时 |
backendType | body | String | 是 | 后端类型( 0-HTTP(s); 1-FCS() 2-Mock) |
isSupportedCors | body | String | 是 | 支持跨区域(CORS)(0-开启 1-关闭) |
requestMethod | body | String | 是 | 请求方法(0-GET 1-POST 2- PATCH 3-PUT 4-OPTIONS 5-DELETE 6-HEAD 7- ANY) |
requestPath | body | String | 是 | 请求路径 |
requestProtocol | body | String | 是 | 请求协议(0-HTTP 1-HTTPS 2-HTTP(s)) |
returnResultContentType | body | String | 是 | 返回结果Content-type |
returnResponseExampleSucess | body | String | 否 | 成功响应示例 |
returnResponseExampleFail | body | String | 否 | 失败响应示例 |
description | body | String | 否 | api描述 |
modelId | body | String | 否 | api请求模型ID |
responseModelId | body | String | 否 | api响应模型ID |
detail | body | String | 否 | api请求模板 |
responseDetail | body | String | 否 | api响应模板 |
readTimeout | body | String | 否 | read_timeout |
retries | body | String | 否 | 代理失败重试次数 |
writeTimeout | body | String | 否 | write_timeout |
params | body | JSONArray | 否 | 请求参数集合 |
paramName | body | String | 否 | 请求参数名称 |
paramPosition | body | Char | 否 | 请求参数位置(0-Path 1-Head 2-Query) |
paramType | body | Char | 否 | 请求参数类型(0-String 1-Float 2-Int 3-Boolean) |
isRequired | body | Char | 否 | 是否必填(1-是 0-否) |
backendParamNameMapping | body | String | 否 | 后端参数名称 |
backendParamPositionMapping | body | Char | 否 | 后端参数位置 |
defaultValue | body | String | 否 | 请求参数默认值 |
paramDescription | body | String | 否 | 请求参数描述 |
headers | body | JSONArray | 否 | 响应Header集合 |
responseHeaderName | body | String | 否 | 响应Header参数名称 |
headerDescription | body | String | 否 | 响应Header参数描述 |
backendResponseParamPosition | body | Char | 否 | 后端响应参数位置 |
backendResponseParamName | body | String | 否 | 后端响应参数名称 |
requestDemo | body | String | 否 | 请求示例 |
constant | body | JSONArray | 否 | 后端常量参数集合 |
backendParamName | body | String | 否 | 后端常量参数名称 |
backendParamPosition | body | Char | 否 | 后端常量参数位置(1-head 2-query) |
backendConstantDescription | body | Char | 否 | 后端常量参数描述 |
errorCodeList | body | JSONArray | 否 | 错误码定义集合 |
errorCode | body | String | 否 | 错误码 |
errorInfo | body | Char | 否 | 错误码信息 |
statusCodeDescription | body | Char | 否 | 错误码描述 |
successReturnDemo | body | String | 否 | 成功返回示例 |
failReturnDemo | body | String | 否 | 失败返回示例 |
fcsGroupId | body | String | 是 | 函数计算应用(分组)ID |
fcsGroupName | body | String | 是 | 函数计算应用(分组)名称 |
fcsGroupDisplayName | body | String | 是 | 函数计算应用(分组)展示名称 |
fcsFuncId | body | String | 是 | 函数计算函数ID |
fcsFuncName | body | String | 是 | 函数计算函数名称 |
fcsVersionId | body | String | 是 | 函数计算函数版本ID |
fcsVersionName | body | String | 是 | 函数计算函数版本 |
fcsTargetType | body | String | 是 | 函数计算目标类型(1-版本 2-别名) |
mockStatusCode | body | Integer | 是 | mock 响应状态码 |
mockHeaders | body | JsonObject | 是 | mock 响应头,键值对 |
mockBody | body | String | 是 | mock 响应 body 体 |
onlineTriggerId | body | String | 是 | 线上环境函数计算触发器ID(函数计算调用创建api接口时传递) |
testTriggerId | body | String | 是 | 测试环境函数计算触发器ID(函数计算调用创建api接口时传递) |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api对象 |
示例
请求示例
URL
/group/0a4656be-26ef-4d5e-8886-9dad8f2ce321/api
{
"description": "aws 测试",
"name": "aws 测试",
"style": "1",
"type": "0",
"modelId": "",
"responseModelId": "",
"detail": "",
"responseDetail": "",
"authenticationMode": "0",
"backendAddr": "http://example.com",
"backendPath": "/",
"backendRequestMethod": "0",
"backendTimeout": 2000,
"backendType": "0",
"isSupportedCors": "0",
"requestMethod": "0",
"requestPath": "/a",
"requestProtocol": "0",
"returnResultContentType": "application/json",
"params": [{
"backendParamNameMapping": "Action",
"backendParamPositionMapping": "2",
"defaultValue": "userlist",
"isRequired": "1",
"paramDescription": "",
"paramName": "Action",
"paramPosition": "2",
"paramType": "0"
}],
"requestDemo": "curl -i --get --include `http:///d -H 'Authorization:...'`"
"headers": [{
"responseHeaderName": "ruler",
"headerDescription": "这是一段描述",
"backendResponseParamPosition": "1",
"backendResponseParamName": "cars[].name"
},
{
"responseHeaderName": "picture",
"headerDescription" :"只是一段描述",
"backendResponseParamPosition": "3",
"backendResponseParamName": "cars[].models"
}],
"constant": [{
"backendParamName": "ddd",
"backendParamPosition": "1",
"backendParamValue": "fff",
"backendConstantDescription": "这是一段描述"
}],
"errorCodeList": [{
"errorCode": 400,
"errorInfo": "1",
"statusCodeDescription": "kkk"
}],
"successReturnDemo": "200 ok",
"failReturnDemo": "500 not ok",
"fcsGroupId":"xxxxxxx",
"fcsGroupName":"xx",
"fcsFuncId":"xxxxxxxxx",
"fcsFuncName":"xxxxxxxxx",
"fcsVersionId":"xxxxxx",
"fcsVersionName":"xxxxx",
"backendPathParams":["name","age"],
"mockStatusCode": 200,
"mockHeaders": {
"Content-Type": "application/json",
"X-Token": "xxxx"
},
"mockBody": '{"code":"0", "success":"true"}'
}
响应示例
{
"id": "828082aa6eb4c7e2016eb51f0c380000",
"groupId": "0a4656be-26ef-4d5e-8886-9dad8f2ce321",
"reqModelId": "",
"resModelId": "",
"userId": "1111",
"rootUserId": "1111",
"name": "aws 测试",
"type": "1",
"style": "1",
"authenticationMode": "0",
"routeName": "1574996741101",
"reqProtocol": "0",
"reqPath": "/a",
"reqMethod": "GET",
"apiStoreFlag": "0",
"isSupportedCors": "0",
"description": "aws 测试",
"isReleased": "0",
"serviceName": "1574996741101",
"backendType": "0",
"backendAddr": "http://example.com",
"backendPath": "/",
"backendReqMethod": "0",
"backendTimeout": 2000,
"readTimeout": null,
"writeTimeout": null,
"retries": null,
"resContentType": "application/json
"resExampleSuccess": "",
"resExampleFail": "",
"createdTime": "2019-11-29T03:05:41.101+0000",
"updatedTime": null,
"isDeleted": "0"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.001004 | API名称参数为空或长度有误 | 500 | 无 |
702.001005 | API分组ID参数为空或长度有误 | 500 | 无 |
702.001006 | 请求协议参数为空或长度有误 | 500 | 无 |
702.001007 | 请求路径参数为空或长度有误 | 500 | 无 |
702.001008 | 请求方法参数为空或长度有误 | 500 | 无 |
702.001009 | 是否跨域参数为空或长度有误 | 500 | 无 |
702.001010 | 后端路径参数为空或长度有误 | 500 | 无 |
702.001011 | 后端请求方法参数为空或长度有误 | 500 | 无 |
702.001012 | contenttype参数为空或长度有误 | 500 | 无 |
702.001013 | API类型参数为空或长度有误 | 500 | 无 |
702.001014 | 鉴权参数为空或长度有误 | 500 | 无 |
702.001015 | 后端超时参数为空或长度有误 | 500 | 无 |
702.001016 | 后端地址参数为空或长度有误 | 500 | 无 |
702.001072 | API响应header名称为空或长度有误 | 500 | 无 |
702.001073 | API后端响应参数位置为空或长度有误 | 500 | 无 |
702.001074 | API后端响应参数名称为空或长度有误 | 500 | 无 |
校验api名称是否重复
校验一个api名称在当前分组下是否唯一
URI
POST /v1/api/action/verify-name
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 否 | apiId |
groupId | body | String | 是 | 分组Id |
name | body | String | 是 | api名称 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
isrepeated | body | Boolean | 是 | 是否重复 |
示例
请求示例1
URL
/v1/api/action/verify-name
{
"name":"api名称",
"id":"b74265ca-65a1-41aa-a249-1918a6af4583",
"groupId":"8a8082906b92b4ba016b92b6e21c0000"
}
响应示例
{
"isrepeated":true
}
校验api路径是否重复
校验一个api路径在当前分组下是否唯一
URI
POST /v1/api/action/verify-path
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 否 | apiId |
groupId | body | String | 是 | 分组Id |
reqPath | body | String | 是 | api路径 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
isrepeated | body | Boolean | 是 | 是否重复 |
示例
请求示例1
URL
/v1/api/action/verify-path
{
"reqPath":"/a",
"id":"b74265ca-65a1-41aa-a249-1918a6af4583",
"groupId":"8a8082906b92b4ba016b92b6e21c0000"
}
响应示例
{
"isrepeated":false
}
分页查询 api 列表
查询某个分组下或者全部分组下的 api,并进行分页展示
URL
GET /api/{pageNo}/{pageSize}?groupId={groupId}&name={name}&env={env}&isRelease={isRelease}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
pageNo | path | Integer | 是 | 当前页码数 |
pageSize | path | Integer | 是 | 每页上api的条数 |
groupId | query | String | 否 | 搜索条件->是否根据分组ID搜索 |
name | query | String | 否 | 搜索条件->是否根据api名称搜索(URL-encoded) |
env | query | String | 否 | 搜索条件->是否根据api发布环境即线上或者测试搜索(流控所用的查询) |
isRelease | query | String | 否 | 搜索条件->是否根据api发布环境即线上或者测试搜索 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object(Page) | 是 | 实例视图对象分页 |
接口更新:使用backendType、isRelease、requestPath、requestMethod字段代替先前字段
示例
正确请求示例
URL
/api/1/10
正确响应示例
{
"pageNo": 1,
"pageSize": 10,
"totalCount": 4,
"data": [
{
apiGroupManageId: "dacd5cf8-30bb-4f40-a54f-c5f8babea33f"
apiGroupName: "test_zjl"
apiName: "zjl_test"
apiStoreFlag: "1"
apiStyle: "0"
backendType: "2"
composerFlag: "0"
createdTime: "2021-06-16T06:55:29Z"
description: "无"
flowId: null
flowName: null
id: "e4e5359e79f89059017a139a7e130008"
isRelease: "2"
isReleased: "2"
reqMethod: "0"
reqPath: "pat/{id}"
requestMethod: "0"
requestPath: "pat/{id}"
}
]
}
查询 api 详情
查看某个 api 详情
URI
GET /api/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 要查看详情的apiID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api对象 |
示例
请求示例 1
URL
/api/828082aa6eb4c7e2016eb51f0c380000
响应示例
{
"constant": [
{
"id": "3f03bc8c-d247-448b-9878-5490bbfe48d7",
"apiId": "828082aa6eb4c7e2016eb51f0c380000",
"name": "ddd",
"value": "fff",
"position": "1",
"description": "这是一段描述",
"createdTime": "2019-11-29T03:39:53.000+0000",
"updatedTime": null,
"isDeleted": "0"
},
{
"id": "85f59c7d-a7d9-49c6-84a5-061430cb73ac",
"apiId": "828082aa6eb4c7e2016eb51f0c380000",
"name": "ggg",
"value": "hhh",
"position": "0",
"description": "这是一段描述",
"createdTime": "2019-11-29T03:39:53.000+0000",
"updatedTime": null,
"isDeleted": "0"
}
],
"headers": [
{
"id": "8910f19a-db21-4184-b92b-9e947eef4093",
"apiId": "4028098171aaf4790171ab233a800000",
"name": "ruler",
"description": "this is a description!",
"backendPositionMapping": "1",
"backendNameMapping": "cars[].name",
"createdTime": "2020-04-24T07:42:25Z",
"updatedTime": null,
"isDeleted": "0"
},
{
"id": "ab22d87e-e0e0-42c2-99d2-a713de5becf4",
"apiId": "4028098171aaf4790171ab233a800000",
"name": "picture",
"description": "this is a description",
"backendPositionMapping": "3",
"backendNameMapping": "cars[].models",
"createdTime": "2020-04-24T07:42:25Z",
"updatedTime": null,
"isDeleted": "0"
}
],
"reqMethod": "GET",
"backendType": "0",
"groupId": "8a8082906b879b2b016b8816a0100000",
"description": "aws 测试 1",
"writeTimeout": null,
"errorCode": [
{
"id": "828082aa6eb53903016eb53e5d0f0002",
"apiId": "828082aa6eb4c7e2016eb51f0c380000",
"code": 400,
"info": "1",
"description": "kkk",
"createdTime": "2019-11-29T03:39:53.000+0000",
"updatedTime": null,
"isDeleted": "0"
},
{
"id": "828082aa6eb53903016eb53e5d0f0003",
"apiId": "828082aa6eb4c7e2016eb51f0c380000",
"code": 500,
"info": "1",
"description": "lll",
"createdTime": "2019-11-29T03:39:53.000+0000",
"updatedTime": null,
"isDeleted": "0"
}
],
"isSupportedCors": "0",
"type": "1",
"routeName": "1574996741101",
"resModelId": "",
"isDeleted": "0",
"reqModelId": "",
"createdTime": "2019-11-29T03:05:41.000+0000",
"id": "828082aa6eb4c7e2016eb51f0c380000",
"isReleased": "0",
"authenticationMode": "0",
"reqPath": "/ad",
"resTemplate": "",
"updatedTime": "2019-11-29T03:39:53.000+0000",
"reqTemplate": "",
"faultTolerant": "1",
"resContentType": "application/json",
"serviceName": "1574996741101",
"params": [
{
"id": "3b0eb26d-4cfe-4ee8-811c-76a343cf5a99",
"apiId": "828082aa6eb4c7e2016eb51f0c380000",
"modelParamId": "",
"name": "Action",
"position": "2",
"type": "0",
"isRequired": "1",
"defaultValue": "userlist",
"description": "",
"backendPositionMapping": "2",
"backendNameMapping": "Action",
"createdTime": "2019-11-29T03:39:53.000+0000",
"updatedTime": null,
"isDeleted": "0"
}
],
"apiStoreFlag": "0",
"requestDemo": "curl ...",
"rootUserId": "1111",
"userId": "1111",
"backendReqMethod": "0",
"retries": null,
"readTimeout": null,
"backendTimeout": 2000,
"name": "整改测试",
"backendAddr": "http://example.com",
"style": "1",
"reqProtocol": "0",
"backendPath": "/",
"resExampleSuccess": "",
"resExampleFail": "",
"successReturnDemo": "200 ok",
"failReturnDemo": "500 not ok"
}
编辑 api
PATCH /api/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | apiID |
groupId | body | String | 是 | api分组ID |
style | body | String | 是 | 风格(0- restful 1-aws风格) |
name | body | String | 是 | api名称 |
backendAddr | body | String | 是 | 后端地址 |
backendPath | body | String | 是 | 后端路径 |
backendRequestMethod | body | String | 是 | 后端请求方法(0-GET 1-POST 2- PATCH 3-PUT 4-OPTIONS 5-DELETE 6-HEAD 7- ANY) |
backendTimeout | body | String | 是 | 后端超时 |
backendType | body | String | 是 | 后端类型( 0-HTTP(s) 1-FCS 2-Mock) |
isSupportedCors | body | String | 是 | 支持跨区域(CORS)(0-开启 1-关闭) |
requestMethod | body | String | 是 | 请求方法(0-GET 1-POST 2- PATCH 3-PUT 4-OPTIONS 5-DELETE 6-HEAD 7- ANY) |
requestPath | body | String | 是 | 请求路径 |
requestProtocol | body | String | 是 | 请求协议(0-HTTP 1-HTTPS) |
returnResultContentType | body | String | 是 | 返回结果Content-type |
returnResponseExampleSucess | body | String | 否 | 成功响应示例 |
returnResponseExampleFail | body | String | 否 | 失败响应示例 |
description | body | String | 否 | api描述 |
modelId | body | String | 否 | api请求模型ID |
responseModelId | body | String | 否 | api响应模型ID |
detail | body | String | 否 | api请求模板 |
responseDetail | body | String | 否 | api响应模板 |
readTimeout | body | String | 否 | read_timeout |
retries | body | String | 否 | 代理失败重试次数 |
writeTimeout | body | String | 否 | write_timeout |
params | body | JSONArray | 否 | 请求参数集合 |
paramName | body | String | 否 | 请求参数名称 |
paramPosition | body | Char | 否 | 请求参数位置 |
paramType | body | Char | 否 | 请求参数类型 |
isRequired | body | Char | 否 | 是否必填 |
backendParamNameMapping | body | String | 否 | 后端参数名称 |
backendParamPositionMapping | body | Char | 否 | 后端参数位置 |
defaultValue | body | String | 否 | 请求参数默认值 |
paramDescription | body | String | 否 | 请求参数描述 |
headers | body | JSONArray | 否 | 响应Header集合 |
responseHeaderName | body | String | 否 | 响应Header参数名称 |
headerDescription | body | String | 否 | 响应Header参数描述 |
backendResponseParamPosition | body | Char | 否 | 后端响应参数位置 |
backendResponseParamName | body | String | 否 | 后端响应参数名称 |
requestDemo | body | String | 否 | 请求示例 |
constant | body | JSONArray | 否 | 后端常量参数集合 |
backendParamName | body | String | 否 | 后端常量参数名称 |
backendParamPosition | body | Char | 否 | 后端常量参数位置 |
backendConstantDescription | body | Char | 否 | 后端常量参数描述 |
errorCodeList | body | JSONArray | 否 | 错误码定义集合 |
errorCode | body | String | 否 | 错误码 |
errorInfo | body | Char | 否 | 错误码信息 |
statusCodeDescription | body | Char | 否 | 错误码描述 |
successReturnDemo | body | Char | 否 | 成功返回示例 |
failReturnDemo | body | Char | 否 | 失败返回示例 |
fcsGroupId | body | String | 是 | 函数计算应用(分组)ID |
fcsGroupName | body | String | 是 | 函数计算应用(分组)名称 |
fcsGroupDisplayName | body | String | 是 | 函数计算应用(分组)展示名称 |
fcsFuncId | body | String | 是 | 函数计算函数ID |
fcsFuncName | body | String | 是 | 函数计算函数名称 |
fcsVersionId | body | String | 是 | 函数计算函数版本ID |
fcsVersionName | body | String | 是 | 函数计算函数版本 |
fcsTargetType | body | String | 是 | 函数计算目标类型(1-版本 2-别名) |
mockStatusCode | body | Integer | 是 | mock 响应状态码 |
mockHeaders | body | JsonObject | 是 | mock响应头,键值对 |
mockBody | body | String | 是 | mock 响应 body 体 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api对象 |
示例
请求示例
URL
/api/828082aa6eb4c7e2016eb51f0c380000
{
"groupId": "8a8082906b879b2b016b8816a0100000",
"description": "aws 测试 1",
"name": "整改测试",
"style": "1",
"modelId": "",
"responseModelId": "",
"detail": "",
"responseDetail": "",
"authenticationMode": "0",
"backendAddr": "http://example.com",
"backendPath": "/",
"backendRequestMethod": "0",
"type": "0",
"backendTimeout": 2000,
"backendType": "0",
"isSupportedCors": "0",
"requestMethod": "0",
"requestPath": "/ad",
"requestProtocol": "0",
"returnResultContentType": "application/json",
"params": [{
"backendParamNameMapping": "Action",
"backendParamPositionMapping": "2",
"defaultValue": "userlist",
"isRequired": "1",
"paramDescription": "",
"paramName": "Action",
"paramPosition": "2",
"paramType": "0"
}
],
"requestDemo": "curl -i --get --include `http:///d -H 'Authorization:...'`"
"headers": [{
"responseHeaderName": "ruler",
"headerDescription": "这是一段描述",
"backendResponseParamPosition": "1",
"backendResponseParamName": "cars[].name"
}],
"constant": [{
"backendParamName": "ddd",
"backendParamPosition": "1",
"backendParamValue": "fff",
"backendConstantDescription": "这是一段描述"
},
{
"backendParamName": "ggg",
"backendParamPosition": "0",
"backendParamValue": "hhh",
"backendConstantDescription": "这是一段描述"
}
],
"errorCodeList": [{
"errorCode": 400,
"errorInfo": "1",
"statusCodeDescription": "kkk"
},
{
"errorCode": 500,
"errorInfo": "1",
"statusCodeDescription": "lll"
}
],
"successReturnDemo": "200 ok",
"failReturnDemo": "500 not ok",
"fcsGroupId":"xxxxxxx",
"fcsGroupName":"xx",
"fcsFuncId":"xxxxxxxxx",
"fcsFuncName":"xxxxxxxxx",
"fcsVersionId":"xxxxxx",
"fcsVersionName":"xxxxx",
"backendPathParams":["name","age"],
"mockStatusCode": 200,
"mockHeaders": {
"Content-Type": "application/json",
"X-Token": "xxxx"
},
"mockBody": '{"code":"0", "success":"true"}'
}
响应示例
{
"id": "828082aa6eb4c7e2016eb51f0c380000",
"groupId": "8a8082906b879b2b016b8816a0100000",
"reqModelId": "",
"resModelId": "",
"userId": "1111",
"rootUserId": "1111",
"name": "整改测试",
"type": "1",
"style": "1",
"authenticationMode": "0",
"routeName": null,
"reqProtocol": "0",
"reqPath": "/ad",
"reqMethod": "GET",
"isSupportedCors": "0",
"description": "aws 测试 1",
"isReleased": "0",
"serviceName": null,
"backendType": "0",
"backendAddr": "http://example.com",
"backendPath": "/",
"backendReqMethod": "0",
"backendTimeout": 2000,
"readTimeout": null,
"writeTimeout": null,
"retries": null,
"resContentType": "application/json",
"resExampleSuccess": "",
"resExampleFail": "",
"createdTime": null,
"updatedTime": "2019-11-29T03:39:53.332+0000",
"isDeleted": "0"
}
删除 api
删除一个 api
URI
DELETE /api/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | apiID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例 1
删除一个 api
URL
/apig/apps/v1/apis/402800816b01a31f016b01a3349c0000
响应示例
{
"code": 0,
"message": "ok",
"data": null,
"status": 200
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.006003 | 该API还未完全下线,请将所有环境中的API全部下线后再进行删除操作 | 500 | 无 |
702.006005 | 不存在此api | 500 | 无 |
发布 api
POST /api/{id}/action/release
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | apiID |
description | body | String | 是 | api描述 |
publishEnvironment | body | String | 是 | 发布环境(0-未发布 1-线上发布 2-测试发布 3-线上测试均发布) |
from | body | String | 是 | 接口调用来源,默认不传,函数计算产品调用传"fcs" |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
code | body | String | 是 | 状态码 |
message | body | String | 是 | 返回信息 |
requestId | body | UUID | 是 | 本次请求ID |
示例
请求示例
URL
/api/2c9180896ae26c9f016ae27384b90000/action/release
{
"description": "发布 api 的描述",
"publishEnvironment":"1"
}
响应示例
{
"code": "200",
"message": "发布 API 成功",
"requestId": "042d077f-1f3d-4a6a-b4de-8055a7457d80"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
703.002001 | 创建API实例失败 | 500 | 无 |
703.003001 | 创建kong实例失败 | 500 | 无 |
下线 api
POST /api/{id}/action/offline
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | apiID |
offlineEnvironment | body | String | 是 | 下线环境( 1-线上下线 2-测试下线 ) |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
code | body | String | 是 | 状态码 |
message | body | String | 是 | 返回信息 |
requestId | body | UUID | 是 | 本次请求ID |
示例
请求示例
URL
/api/2c9180896ae26c9f016ae27384b90000/action/offline
{
"offlineEnvironment":"1",
"description": "下线 api 的描述"
}
响应示例
{
"code": "200",
"message": "API 下线成功",
"requestId": "042d077f-1f3d-4a6a-b4de-8055a7457d80"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
703.002001 | 创建API实例失败 | 500 | 无 |
703.003001 | 创建kong实例失败 | 500 | 无 |
swagger文件导入
swagger文件导入
URI
POST /v1/api/upload/{groupId}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupId | path | String | 是 | 分组id |
isOverride | body | String | 是 | 是否覆盖 |
swaggerInParams | body | json | 是 | 导入文件内容 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | json | 是 | 创建api的json |
示例
请求示例
URL
/v1/api/upload/1c04ed6e-71ee-4aca-9bd4-6d046f7019e2
{
"isOverride": "1",
"swaggerInParams": {
"swagger":"2.0",
"info": {
"title":"newGroup0323",
"description":"",
"version":"2021-03-23 19:32:31"
},
"host":"DomainNameIsEmpty",
"basePath":"/",
"x-inspurcloud-apig-model": {
"模型7": {
"description":"",
"Content-Type":"application/json",
"detail":"\n{\n \n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"password\": {\n \"type\": \"string\"\n },\n \"receiveEmail\": {\n \"type\": \"string\"\n },\n \"receivePhone\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"apiAccess\": {\n \"type\": \"string\"\n },\n \"consoleAccess\": {\n \"type\": \"string\"\n },\n \"isMsgReciever\": {\n \"type\": \"string\"\n },\n \"resetPwd\": {\n \"type\": \"string\"\n },\n \"changePwd\": {\n \"type\": \"string\"\n }\n }\n }\n}"
},
"模型10": {
"description":"",
"Content-Type":"application/json",
"detail":"\n{\n \n \"type\": \"array\",\n \"items\": [{\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"password\": {\n \"type\": \"string\"\n }\n }\n }]\n}"
}
},
"paths": {
"/testZ/{id}": {
"post": {
"tags": [
"ipa1713"
],
"operationId":"ipa1713",
"description":"api描述信息",
"summary":"api描述信息",
"schemes": [
"http",
"https"
],
"x-inspurcloud-apig-auth":"iam",
"security": [
{
"IAMAuthSignAlgorithm": [
],
"IAMAuthTime": [
],
"IAMAuthRandom": [
],
"IAMAuthSign": [
],
"IAMAuthSecretId": [
]
}
],
"x-inspurcloud-apig-cors":true,
"parameters": [
{
"name":"passwd",
"description":"",
"in":"header",
"type":"string",
"default":""
},
{
"name":"name",
"description":"",
"in":"query",
"type":"string",
"default":"",
"required":true
},
{
"name":"id",
"description":"",
"in":"path",
"type":"string",
"default":"",
"required":true
},
{
"name":"age",
"description":"",
"in":"header",
"type":"integer",
"format":"int32",
"default":""
}
],
"x-inspurcloud-apig-api-model": {
"requestModel":"模型7"
},
"x-inspurcloud-apig-request-sample":"curl -X POST -H 'content-type: application/json' -d 'json内容' URL",
"x-inspurcloud-apig-response-success-sample":"{\"result\"::\"1\"}",
"x-inspurcloud-apig-response-fail-sample":"curl -X POST -H 'content-type: application/json' -d 'json内容' URL",
"x-inspurcloud-apig-response-template":"{\n \"choices\": [\n <% for i, item in pairs(bins) do -%>\n {\n \"available\": \"<%= item.quantity -%>\"\n }\n <% if next(bins, i) then -%>\n ,\n <% end -%>\n <% end -%>\n ]\n}",
"x-inspurcloud-apig-backend-info": {
"httpEndpoints": {
"scheme": [
"http",
"https"
],
"address":"http://www.abc.com",
"path":"/get/{id}",
"method":"post",
"timeout":3000
},
"parameters": [
{
"name":"passwd",
"in":"header",
"origin":"REQUEST",
"value":"passwd"
},
{
"name":"name",
"in":"query",
"origin":"REQUEST",
"value":"name"
},
{
"name":"id",
"in":"path",
"origin":"REQUEST",
"value":"id"
},
{
"name":"age",
"in":"header",
"origin":"REQUEST",
"value":"age"
},
{
"name":"weight",
"description":"",
"in":"header",
"origin":"CONSTANT",
"default":"50"
}
],
"requestTemplate": {
"template":"{\n \"choices\": [\n <% for i, item in pairs(bins) do -%>\n {\n \"kind\": \"<%= item.type -%>\",\n \"suggestedPrice\": \"<%= item.price .. ' per ' .. item.unit -%>\",\n \"available\": \"<%= item.quantity -%>\"\n }\n <% if next(bins, i) then -%>\n ,\n <% end -%>\n <% end -%>\n ]\n}",
"parseRule":"Penetrate"
}
},
"x-inspurcloud-apig-final-response-header": [
{
"name":"finalTerm",
"description":""
}
],
"x-inspurcloud-apig-backend-response-header": [
{
"name":"term",
"in":"header",
"value":"finalTerm"
}
],
"x-inspurcloud-apig-response-content-type":"application/json",
"responses": {
"400": {
"description":"Invalid ID supplied",
"x-inspurcloud-apig-error-info":"invalid..."
},
"404": {
"description":"Pet not found",
"x-inspurcloud-apig-error-info":"not found..."
},
"405": {
"description":"Validation exception",
"x-inspurcloud-apig-error-info":"exception..."
}
}
},
"put": {
"tags": [
"ipa1714"
],
"operationId":"ipa1714",
"description":"api描述信息",
"summary":"api描述信息",
"schemes": [
"http",
"https"
],
"x-inspurcloud-apig-auth":"app",
"security": [
{
"APPAuthAppKey": [
],
"APPAuthTime": [
],
"APPAuthSign": [
]
}
],
"x-inspurcloud-apig-cors":true,
"parameters": [
{
"name":"passwd",
"description":"",
"in":"header",
"type":"string",
"default":""
},
{
"name":"name",
"description":"",
"in":"query",
"type":"string",
"default":"",
"required":true
},
{
"name":"id",
"description":"",
"in":"path",
"type":"string",
"default":"",
"required":true
},
{
"name":"age",
"description":"",
"in":"header",
"type":"integer",
"format":"int32",
"default":"35"
}
],
"x-inspurcloud-apig-api-model": {
"requestModel":"模型7"
},
"x-inspurcloud-apig-request-sample":"",
"x-inspurcloud-apig-response-success-sample":"{\"result\"::\"1\"}",
"x-inspurcloud-apig-response-fail-sample":"",
"x-inspurcloud-apig-response-template":"{\n \"choices\": [\n <% for i, item in pairs(bins) do -%>\n {\n \"available\": \"<%= item.quantity -%>\"\n }\n <% if next(bins, i) then -%>\n ,\n <% end -%>\n <% end -%>\n ]\n}",
"x-inspurcloud-apig-backend-info": {
"httpEndpoints": {
"scheme": [
"http",
"https"
],
"address":"http://www.abc.com",
"path":"/get/{id}",
"method":"post",
"timeout":3000
},
"parameters": [
{
"name":"passwd",
"in":"header",
"origin":"REQUEST",
"value":"passwd"
},
{
"name":"name",
"in":"query",
"origin":"REQUEST",
"value":"name"
},
{
"name":"id",
"in":"path",
"origin":"REQUEST",
"value":"id"
},
{
"name":"age",
"in":"header",
"origin":"REQUEST",
"value":"age"
},
{
"name":"weight",
"description":"",
"in":"header",
"origin":"CONSTANT",
"default":"50"
}
],
"requestTemplate": {
"template":"{\n \"choices\": [\n <% for i, item in pairs(bins) do -%>\n {\n \"kind\": \"<%= item.type -%>\",\n \"suggestedPrice\": \"<%= item.price .. ' per ' .. item.unit -%>\",\n \"available\": \"<%= item.quantity -%>\"\n }\n <% if next(bins, i) then -%>\n ,\n <% end -%>\n <% end -%>\n ]\n}",
"parseRule":"Penetrate"
}
},
"x-inspurcloud-apig-final-response-header": [
{
"name":"finalTerm",
"description":""
}
],
"x-inspurcloud-apig-backend-response-header": [
{
"name":"term",
"in":"body",
"value":"finalTerm"
}
],
"x-inspurcloud-apig-response-content-type":"application/json",
"responses": {
"400": {
"description":"Invalid ID supplied",
"x-inspurcloud-apig-error-info":"invalid..."
},
"404": {
"description":"Pet not found",
"x-inspurcloud-apig-error-info":"not found..."
},
"405": {
"description":"Validation exception",
"x-inspurcloud-apig-error-info":"exception..."
}
}
}
},
"/ceshi": {
"get": {
"tags": [
"测试编排"
],
"operationId":"测试编排",
"description":"",
"summary":"",
"schemes": [
"http"
],
"x-inspurcloud-apig-composer-steps": [
{
"name":"wwww",
"type":"http",
"code":"eee",
"method":"GET",
"url":"http://www.server.com/regioncsv3/user/11",
"timeout":21255,
"inputs": {
"path": {
"drrrr": {
"default":"iiii",
"type":"string",
"value":"yttttt"
}
}
}
},
{
"name":"response",
"type":"response",
"status":"200",
"outputs": {
"header": {
"ddddd": {
"default":"wss",
"type":"string",
"value":"ddddd"
}
}
}
}
],
"responses": {
"200": {
"description":""
}
}
}
},
"/func": {
"get": {
"tags": [
"函数计算export"
],
"operationId":"函数计算export",
"description":"",
"summary":"",
"schemes": [
"http"
],
"x-inspurcloud-apig-response-template":"",
"x-inspurcloud-apig-backend-info": {
"httpEndpoints": {
"scheme": [
"fcs"
],
"appName":"测试应用",
"funcName":"testbyrd",
"versionName":"LATEST"
},
"requestTemplate": {
"template":"",
"parseRule":"415"
}
},
"x-inspurcloud-apig-response-content-type":"application/json",
"responses": {
"200": {
"description":"",
"x-inspurcloud-apig-error-info":"request successful"
}
}
}
}
},
"x-inspurcloud-apig-aws-paths": [
{
"/": {
"get": {
"tags": [
"仅aws导出测试"
],
"operationId":"仅aws导出测试",
"description":"",
"summary":"",
"x-inspurcloud-apig-style":"aws",
"schemes": [
"http"
],
"x-inspurcloud-apig-auth":"iam",
"security": [
{
"IAMAuthSignAlgorithm": [
],
"IAMAuthTime": [
],
"IAMAuthRandom": [
],
"IAMAuthSign": [
],
"IAMAuthSecretId": [
]
}
],
"parameters": [
{
"name":"Action",
"description":"",
"in":"query",
"type":"string",
"default":"0001",
"required":true
},
{
"name":"name",
"description":"",
"in":"query",
"type":"string",
"default":"",
"required":true
},
{
"name":"age",
"description":"",
"in":"query",
"type":"integer",
"format":"int32",
"default":""
}
],
"x-inspurcloud-apig-api-model": {
"requestModel":"模型7"
},
"x-inspurcloud-apig-backend-info": {
"httpEndpoints": {
"scheme": [
"http",
"https"
],
"address":"http://www.baidu.com",
"path":"/ccccc",
"method":"post",
"timeout":3000
},
"parameters": [
{
"name":"Action",
"in":"query",
"origin":"REQUEST",
"value":"Action"
},
{
"name":"name",
"in":"query",
"origin":"REQUEST",
"value":"name"
},
{
"name":"age",
"in":"query",
"origin":"REQUEST",
"value":"age"
},
{
"name":"weight",
"description":"",
"in":"header",
"origin":"CONSTANT",
"default":"100"
}
]
},
"x-inspurcloud-apig-response-content-type":"application/json",
"responses": {
"200": {
"description":"",
"x-inspurcloud-apig-error-info":"request successful"
}
}
}
}
},
{
"/": {
"get": {
"tags": [
"aws2"
],
"operationId":"aws2",
"description":"",
"summary":"",
"x-inspurcloud-apig-style":"aws",
"schemes": [
"http"
],
"parameters": [
{
"name":"Action",
"description":"",
"in":"query",
"type":"string",
"default":"3000",
"required":true
}
],
"x-inspurcloud-apig-backend-info": {
"httpEndpoints": {
"scheme": [
"http",
"https"
],
"address":"http://www.baidu.com",
"path":"/rrrrr",
"method":"get",
"timeout":2000
},
"parameters": [
{
"name":"Action",
"in":"query",
"origin":"REQUEST",
"value":"Action"
},
{
"name":"ccc",
"description":"",
"in":"query",
"origin":"CONSTANT",
"default":"3"
}
]
},
"x-inspurcloud-apig-response-content-type":"application/xml",
"responses": {
"200": {
"description":"",
"x-inspurcloud-apig-error-info":"request successful"
}
}
}
}
}
],
"tags": [
{
"name":"ipa1713",
"description":"api描述信息"
},
{
"name":"ipa1714",
"description":"api描述信息"
},
{
"name":"仅aws导出测试",
"description":""
},
{
"name":"aws2",
"description":""
}
],
"securityDefinitions": {
"IAMAuthSign": {
"type":"apiKey",
"in":"header",
"name":"x-sign"
},
"IAMAuthTime": {
"type":"apiKey",
"in":"header",
"name":"x-time"
},
"APPAuthAppKey": {
"type":"apiKey",
"in":"header",
"name":"x-auth-app-key"
},
"IAMAuthSecretId": {
"type":"apiKey",
"in":"header",
"name":"x-secret-id"
},
"IAMAuthRandom": {
"type":"apiKey",
"in":"header",
"name":"x-random"
},
"APPAuthTime": {
"type":"apiKey",
"in":"header",
"name":"x-auth-time"
},
"APPAuthSign": {
"type":"apiKey",
"in":"header",
"name":"x-auth-sign"
},
"IAMAuthSignAlgorithm": {
"type":"apiKey",
"in":"header",
"name":"x-sign-algorithm"
}
}
}
}
响应示例
{
"sssdsw": "828083b6715dba1901715dc3a4d80002",
"ma测试": "828083b6715dba1901715dc3a5c00003"
}
swagger 文件下载
swagger 文件下载
URI
POST /api/download
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupId | query | String | 是 | 分组id |
env | query | String | 是 | api发布的环境 |
type | query | String | 是 | 输出的文件类型 |
示例
请求示例
URL
/api/download/file?groupId=bf592adf-68b0-4b8a-a200-493611821ddd&env=2&type=1
响应示例 (弹出文件下载框,以下响应为文件内容,无需处理)
{
"swagger":"2.0",
"info": {
"title":"newGroup0323",
"description":"",
"version":"2021-03-23 19:32:31"
},
"host":"DomainNameIsEmpty",
"basePath":"/",
"x-inspurcloud-apig-model": {
"模型 7": {
"description":"",
"Content-Type":"application/json",
"detail":"\n{\n \n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"password\": {\n \"type\": \"string\"\n },\n \"receiveEmail\": {\n \"type\": \"string\"\n },\n \"receivePhone\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"apiAccess\": {\n \"type\": \"string\"\n },\n \"consoleAccess\": {\n \"type\": \"string\"\n },\n \"isMsgReciever\": {\n \"type\": \"string\"\n },\n \"resetPwd\": {\n \"type\": \"string\"\n },\n \"changePwd\": {\n \"type\": \"string\"\n }\n }\n }\n}"
},
"模型 10": {
"description":"",
"Content-Type":"application/json",
"detail":"\n{\n \n \"type\": \"array\",\n \"items\": [{\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"password\": {\n \"type\": \"string\"\n }\n }\n }]\n}"
}
},
"paths": {
"/testZ/{id}": {
"post": {
"tags": [
"ipa1713"
],
"operationId":"ipa1713",
"description":"api 描述信息",
"summary":"api 描述信息",
"schemes": [
"http",
"https"
],
"x-inspurcloud-apig-auth":"iam",
"security": [
{
"IAMAuthSignAlgorithm": [
],
"IAMAuthTime": [
],
"IAMAuthRandom": [
],
"IAMAuthSign": [
],
"IAMAuthSecretId": [
]
}
],
"x-inspurcloud-apig-cors":true,
"parameters": [
{
"name":"passwd",
"description":"",
"in":"header",
"type":"string",
"default":""
},
{
"name":"name",
"description":"",
"in":"query",
"type":"string",
"default":"",
"required":true
},
{
"name":"id",
"description":"",
"in":"path",
"type":"string",
"default":"",
"required":true
},
{
"name":"age",
"description":"",
"in":"header",
"type":"integer",
"format":"int32",
"default":""
}
],
"x-inspurcloud-apig-api-model": {
"requestModel":"模型 7"
},
"x-inspurcloud-apig-request-sample":"curl -X POST -H 'content-type: application/json' -d 'json 内容' URL",
"x-inspurcloud-apig-response-success-sample":"{\"result\"::\"1\"}",
"x-inspurcloud-apig-response-fail-sample":"curl -X POST -H 'content-type: application/json' -d 'json 内容' URL",
"x-inspurcloud-apig-response-template":"{\n \"choices\": [\n <% for i, item in pairs(bins) do -%>\n {\n \"available\": \"<%= item.quantity -%>\"\n }\n <% if next(bins, i) then -%>\n ,\n <% end -%>\n <% end -%>\n ]\n}",
"x-inspurcloud-apig-backend-info": {
"httpEndpoints": {
"scheme": [
"http",
"https"
],
"address":"http://www.abc.com",
"path":"/get/{id}",
"method":"post",
"timeout":3000
},
"parameters": [
{
"name":"passwd",
"in":"header",
"origin":"REQUEST",
"value":"passwd"
},
{
"name":"name",
"in":"query",
"origin":"REQUEST",
"value":"name"
},
{
"name":"id",
"in":"path",
"origin":"REQUEST",
"value":"id"
},
{
"name":"age",
"in":"header",
"origin":"REQUEST",
"value":"age"
},
{
"name":"weight",
"description":"",
"in":"header",
"origin":"CONSTANT",
"default":"50"
}
],
"requestTemplate": {
"template":"{\n \"choices\": [\n <% for i, item in pairs(bins) do -%>\n {\n \"kind\": \"<%= item.type -%>\",\n \"suggestedPrice\": \"<%= item.price .. ' per ' .. item.unit -%>\",\n \"available\": \"<%= item.quantity -%>\"\n }\n <% if next(bins, i) then -%>\n ,\n <% end -%>\n <% end -%>\n ]\n}",
"parseRule":"Penetrate"
}
},
"x-inspurcloud-apig-final-response-header": [
{
"name":"finalTerm",
"description":""
}
],
"x-inspurcloud-apig-backend-response-header": [
{
"name":"term",
"in":"header",
"value":"finalTerm"
}
],
"x-inspurcloud-apig-response-content-type":"application/json",
"responses": {
"400": {
"description":"Invalid ID supplied",
"x-inspurcloud-apig-error-info":"invalid..."
},
"404": {
"description":"Pet not found",
"x-inspurcloud-apig-error-info":"not found..."
},
"405": {
"description":"Validation exception",
"x-inspurcloud-apig-error-info":"exception..."
}
}
},
"put": {
"tags": [
"ipa1714"
],
"operationId":"ipa1714",
"description":"api 描述信息",
"summary":"api 描述信息",
"schemes": [
"http",
"https"
],
"x-inspurcloud-apig-auth":"app",
"security": [
{
"APPAuthAppKey": [
],
"APPAuthTime": [
],
"APPAuthSign": [
]
}
],
"x-inspurcloud-apig-cors":true,
"parameters": [
{
"name":"passwd",
"description":"",
"in":"header",
"type":"string",
"default":""
},
{
"name":"name",
"description":"",
"in":"query",
"type":"string",
"default":"",
"required":true
},
{
"name":"id",
"description":"",
"in":"path",
"type":"string",
"default":"",
"required":true
},
{
"name":"age",
"description":"",
"in":"header",
"type":"integer",
"format":"int32",
"default":"35"
}
],
"x-inspurcloud-apig-api-model": {
"requestModel":"模型 7"
},
"x-inspurcloud-apig-request-sample":"",
"x-inspurcloud-apig-response-success-sample":"{\"result\"::\"1\"}",
"x-inspurcloud-apig-response-fail-sample":"",
"x-inspurcloud-apig-response-template":"{\n \"choices\": [\n <% for i, item in pairs(bins) do -%>\n {\n \"available\": \"<%= item.quantity -%>\"\n }\n <% if next(bins, i) then -%>\n ,\n <% end -%>\n <% end -%>\n ]\n}",
"x-inspurcloud-apig-backend-info": {
"httpEndpoints": {
"scheme": [
"http",
"https"
],
"address":"http://www.abc.com",
"path":"/get/{id}",
"method":"post",
"timeout":3000
},
"parameters": [
{
"name":"passwd",
"in":"header",
"origin":"REQUEST",
"value":"passwd"
},
{
"name":"name",
"in":"query",
"origin":"REQUEST",
"value":"name"
},
{
"name":"id",
"in":"path",
"origin":"REQUEST",
"value":"id"
},
{
"name":"age",
"in":"header",
"origin":"REQUEST",
"value":"age"
},
{
"name":"weight",
"description":"",
"in":"header",
"origin":"CONSTANT",
"default":"50"
}
],
"requestTemplate": {
"template":"{\n \"choices\": [\n <% for i, item in pairs(bins) do -%>\n {\n \"kind\": \"<%= item.type -%>\",\n \"suggestedPrice\": \"<%= item.price .. ' per ' .. item.unit -%>\",\n \"available\": \"<%= item.quantity -%>\"\n }\n <% if next(bins, i) then -%>\n ,\n <% end -%>\n <% end -%>\n ]\n}",
"parseRule":"Penetrate"
}
},
"x-inspurcloud-apig-final-response-header": [
{
"name":"finalTerm",
"description":""
}
],
"x-inspurcloud-apig-backend-response-header": [
{
"name":"term",
"in":"body",
"value":"finalTerm"
}
],
"x-inspurcloud-apig-response-content-type":"application/json",
"responses": {
"400": {
"description":"Invalid ID supplied",
"x-inspurcloud-apig-error-info":"invalid..."
},
"404": {
"description":"Pet not found",
"x-inspurcloud-apig-error-info":"not found..."
},
"405": {
"description":"Validation exception",
"x-inspurcloud-apig-error-info":"exception..."
}
}
}
},
"/ceshi": {
"get": {
"tags": [
"测试编排"
],
"operationId":"测试编排",
"description":"",
"summary":"",
"schemes": [
"http"
],
"x-inspurcloud-apig-composer-steps": [
{
"name":"wwww",
"type":"http",
"code":"eee",
"method":"GET",
"url":"http://www.server.com/regioncsv3/user/11",
"timeout":21255,
"inputs": {
"path": {
"drrrr": {
"default":"iiii",
"type":"string",
"value":"yttttt"
}
}
}
},
{
"name":"response",
"type":"response",
"status":"200",
"outputs": {
"header": {
"ddddd": {
"default":"wss",
"type":"string",
"value":"ddddd"
}
}
}
}
],
"responses": {
"200": {
"description":""
}
}
}
},
"/func": {
"get": {
"tags": [
"函数计算 export"
],
"operationId":"函数计算 export",
"description":"",
"summary":"",
"schemes": [
"http"
],
"x-inspurcloud-apig-response-template":"",
"x-inspurcloud-apig-backend-info": {
"httpEndpoints": {
"scheme": [
"fcs"
],
"appName":"测试应用",
"funcName":"testbyrd",
"versionName":"LATEST"
},
"requestTemplate": {
"template":"",
"parseRule":"415"
}
},
"x-inspurcloud-apig-response-content-type":"application/json",
"responses": {
"200": {
"description":"",
"x-inspurcloud-apig-error-info":"request successful"
}
}
}
}
},
"x-inspurcloud-apig-aws-paths": [
{
"/": {
"get": {
"tags": [
"仅 aws 导出测试"
],
"operationId":"仅 aws 导出测试",
"description":"",
"summary":"",
"x-inspurcloud-apig-style":"aws",
"schemes": [
"http"
],
"x-inspurcloud-apig-auth":"iam",
"security": [
{
"IAMAuthSignAlgorithm": [
],
"IAMAuthTime": [
],
"IAMAuthRandom": [
],
"IAMAuthSign": [
],
"IAMAuthSecretId": [
]
}
],
"parameters": [
{
"name":"Action",
"description":"",
"in":"query",
"type":"string",
"default":"0001",
"required":true
},
{
"name":"name",
"description":"",
"in":"query",
"type":"string",
"default":"",
"required":true
},
{
"name":"age",
"description":"",
"in":"query",
"type":"integer",
"format":"int32",
"default":""
}
],
"x-inspurcloud-apig-api-model": {
"requestModel":"模型 7"
},
"x-inspurcloud-apig-backend-info": {
"httpEndpoints": {
"scheme": [
"http",
"https"
],
"address":"http://www.baidu.com",
"path":"/ccccc",
"method":"post",
"timeout":3000
},
"parameters": [
{
"name":"Action",
"in":"query",
"origin":"REQUEST",
"value":"Action"
},
{
"name":"name",
"in":"query",
"origin":"REQUEST",
"value":"name"
},
{
"name":"age",
"in":"query",
"origin":"REQUEST",
"value":"age"
},
{
"name":"weight",
"description":"",
"in":"header",
"origin":"CONSTANT",
"default":"100"
}
]
},
"x-inspurcloud-apig-response-content-type":"application/json",
"responses": {
"200": {
"description":"",
"x-inspurcloud-apig-error-info":"request successful"
}
}
}
}
},
{
"/": {
"get": {
"tags": [
"aws2"
],
"operationId":"aws2",
"description":"",
"summary":"",
"x-inspurcloud-apig-style":"aws",
"schemes": [
"http"
],
"parameters": [
{
"name":"Action",
"description":"",
"in":"query",
"type":"string",
"default":"3000",
"required":true
}
],
"x-inspurcloud-apig-backend-info": {
"httpEndpoints": {
"scheme": [
"http",
"https"
],
"address":"http://www.baidu.com",
"path":"/rrrrr",
"method":"get",
"timeout":2000
},
"parameters": [
{
"name":"Action",
"in":"query",
"origin":"REQUEST",
"value":"Action"
},
{
"name":"ccc",
"description":"",
"in":"query",
"origin":"CONSTANT",
"default":"3"
}
]
},
"x-inspurcloud-apig-response-content-type":"application/xml",
"responses": {
"200": {
"description":"",
"x-inspurcloud-apig-error-info":"request successful"
}
}
}
}
}
],
"tags": [
{
"name":"ipa1713",
"description":"api 描述信息"
},
{
"name":"ipa1714",
"description":"api 描述信息"
},
{
"name":"仅 aws 导出测试",
"description":""
},
{
"name":"aws2",
"description":""
}
],
"securityDefinitions": {
"IAMAuthSign": {
"type":"apiKey",
"in":"header",
"name":"x-sign"
},
"IAMAuthTime": {
"type":"apiKey",
"in":"header",
"name":"x-time"
},
"APPAuthAppKey": {
"type":"apiKey",
"in":"header",
"name":"x-auth-app-key"
},
"IAMAuthSecretId": {
"type":"apiKey",
"in":"header",
"name":"x-secret-id"
},
"IAMAuthRandom": {
"type":"apiKey",
"in":"header",
"name":"x-random"
},
"APPAuthTime": {
"type":"apiKey",
"in":"header",
"name":"x-auth-time"
},
"APPAuthSign": {
"type":"apiKey",
"in":"header",
"name":"x-auth-sign"
},
"IAMAuthSignAlgorithm": {
"type":"apiKey",
"in":"header",
"name":"x-sign-algorithm"
}
}
}
在线调试
描述
- 在线调试发送请求接口
URI
POST /api/{id}/action/debug
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | api的id |
protocol | body | String | 是 | 协议 http或https |
domainName | body | String | 是 | 选择的域名 |
key | body | String | 是 | IAM认证或APP认证的key ID |
secret | body | String | 是 | IAM认证或APP认证的secret |
paths | body | String | 是 | 入参位置在path中的参数值资源集合名称 |
paramName | body | String | 是 | 参数名称 |
paramType | body | String | 是 | 参数类型 |
paramValue | body | String | 是 | 参数值 |
isRequired | body | String | 是 | 是否必填 0-否 1-是 |
headers | body | String | 是 | 入参位置在header中的参数值资源集合名称 |
paramName | body | String | 是 | 参数名称 |
paramType | body | String | 是 | 参数类型 |
paramValue | body | String | 是 | 参数值 |
isRequired | body | String | 是 | 是否必填 0-否 1-是 |
querys | body | String | 是 | 入参位置在query中的参数值资源集合名称 |
paramName | body | String | 是 | 参数名称 |
paramType | body | String | 是 | 参数类型 |
paramValue | body | String | 是 | 参数值 |
isRequired | body | String | 是 | 是否必填 0-否 1-是 |
body | body | String | 是 | body参数值 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 调试结果对象 |
示例
请求示例
URL
/api/402809817272bff3017272d75f7b0000/action/debug
{
"protocol": "http",
"domainName": "5467ac5b-dfe4-4be5-aa78-9176a249b345.dev.inspurcloud.cn",
"key": "159471385743514",
"secret":"9b1692e6ba0cf7e9569b88c1cad66a9b29c00b1e",
"paths": [
{
"paramName": "name",
"paramType": "String",
"paramValue": "Jerry",
"isRequired": "1"
},
{
"paramName": "gender",
"paramType": "String",
"paramValue": "male",
"isRequired": "1"
}
],
"headers": [
{
"paramName": "job",
"paramType": "String",
"paramValue": "engineer",
"isRequired": "1"
}
],
"querys": [
{
"paramName": "smoking",
"paramType": "String",
"paramValue": "no",
"isRequired": "0"
}
],
body:{
"familyMembers":[
{
"name":"Jenny",
role":"wife"
},
{
"name":"Tom",
role":"son"
}
],
"haveCar":"yes"
}
}
响应示例
{
"code":"200",
"message":"调试成功",
"requestId":"202a5b29-2901-45d7-8252-c6f6c7e71e97",
"data":
{
"headers":"{Server=[nginx/1.15.10], Date=[Sat, 16 Jan 2021 07:00:43 GMT], Content-Type=[application/json;charset=UTF-8], Transfer-Encoding=[chunked], Connection=[keep-alive], Vary=[Accept-Encoding], access-control-allow-credentials=[true], request-id=[5d761ddd-633f-4073-bfad-c2e14472c4a6], x-content-type-options=[nosniff], x-xss-protection=[1; mode=block], cache-control=[no-cache, no-store, max-age=0, must-revalidate], pragma=[no-cache], expires=[0], x-frame-options=[DENY], x-envoy-upstream-service-time=[34], X-Kong-Upstream-Latency=[57], X-Kong-Proxy-Latency=[43], Via=[kong/1.5.1]}",
"code":"200",
"body":"{\"pageNo\":1,\"pageSize\":1,\"totalCount\":8,\"data\":[{\"groupName\":\"NEWAPI 网关 APP 认证调试\",\"groupDescription\":\"\",\"apis\":[{\"requestPath\":\"/apig/apps/v1/groups/{pageNo}/{pageSize}\",\"requestMethod\":\"0\",\"apiName\":\"查看 API 网关列表后端 GET\"},{\"requestPath\":\"/apig/apps/v1/groups\",\"requestMethod\":\"3\",\"apiName\":\"创建 API 分组后端 POST\"},{\"requestPath\":\"/testplan\",\"requestMethod\":\"0\",\"apiName\":\"性能压测 API\"},{\"requestMethod\":\"0\",\"requestPath\":\"/testplana\",\"apiName\":\"性能测试 API 无处理时间\"},{\"apiName\":\"测试外网\",\"requestPath\":\"/ceshi/net\",\"requestMethod\":\"0\"}],\"secondaryDomainName\":\"74604108-6c42-446f-b86e-55459f51ec88.cn-north-3.inspurapigate.com\",\"apiCount\":5,\"createdTime\":\"2020-12-23T09:00:55Z\",\"id\":\"74604108-6c42-446f-b86e-55459f51ec88\",\"regionBelongsTo\":\"cn-north-3\",\"categoryName\":\"云服务产品\",\"categoryId\":\"072ebfbea4ce11eaa3ccd2e749be7d3c\",\"storeFlag\":null,\"onlineApi\":4}]}"
}
}
获取api图表数据
URI
POST /vq/api/{id}/ametric-data
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
apiId | path | String | 是 | apiID |
metricName | query | String | 是 | 统计类型 |
index | query | String | 是 | 时间类型 1:近1小时 2:近24小时 3:近7天 4:近30天 |
env | query | String | 是 | 环境 1:线上 2:测试 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 概览图表数据 |
示例
请求示例
URL
/v1/api/2c9180896ae26c9f016ae27384b90000/metric-data?metricName=apig_requests&index=1&env=1
响应示例
{
"code": "200",
"message": "ok",
"data": {
"2c9180896ae26c9f016ae27384b90000": [{
"time": "2021-03-30T07:00:00Z",
"value": 108.0
},
{
"time": "2021-03-30T08:00:00Z",
"value": 0.0
}
]
},
"status": 200,
"requestId": "EC1BB5DE5254418FA62FB3E2C212DD19"
}
返回值
time:时间
value: 坐标值
查询已绑定流控策略
URI
GET /v1/flow/api/{id}/{env}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | apiID |
env | path | String | 是 | 环境 1-线上 2-测试 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | List | 是 | 流量策略对象列表 |
示例
请求示例
URL
/v1/flow/api/e4e511ac7a36847b017a3692c83d0000/3
响应示例
[
{
"id": "e4e5116e7a368572017a37a0840d0005",
"flowId": "e4e58a3c7a1cc838017a1d08231a000e",
"userTimes": 5,
"unit": "hour",
"applicationTimes": 100,
"createdTime": "2021-06-18T02:51:50Z",
"duration": 11,
"name": "接口测试创建策略test04",
"apiTimes": 200,
"env": "2"
},
{
"duration": 1,
"name": "子账号1",
"userTimes": null,
"createdTime": "2021-06-23T06:27:07Z",
"id": "e4e5116e7a368572017a37a4bcba0006",
"env": "1",
"unit": "second",
"applicationTimes": null,
"flowId": "e4e511ac7a36847b017a378d07b10009",
"apiTimes": 10
}
]
获取已绑定访问控制
描述
- 查询已绑定访问控制列表
URI
GET /access-restriction/v1/api/{id}/binded-rules?env={env}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | api的id |
env | query | String | 是 | 环境 1-线上 2-测试 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 访问控制列表 |
示例
请求示例
URL
/access-restriction/v1/api/8a8082906b938ed0016b939db34e0002/binded-rules?env=
响应示例
{
"data": [
{
"id": "af3w455b-36cd-4e62-98e7-c0fcfd79rr1w",
"ipRuleName": "访问控制1",
"ipRuleId":"354b455b-36cd-4e62-98e7-c0fcfd79ew21",
"type":"white",
"ips":"192.168.0.1",
"env": "1",
"createdTime": "2020-06-23T11:39:55Z"
},
{
"ipRuleName": "访问控制2",
"ipRuleId":"3xz1455b-36cd-4e62-98e7-c0fcfd79rt22",
"type":"black",
"ips":"172.16.0.1",
"env": "2",
"createdTime": "2020-06-23T11:39:55Z",
"id": "af3w455b-36cd-4e62-98e7-c0fcfd79rr1w"
}
]
}
获取访问控制可以绑定的所有API列表
描述
- 查询绑定API时展示所有API列表
URI
GET /access-restriction/ip-rules/{id}/apis?groupId={groupId}&apiName={apiName}&env={env}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 当前访问控制策略id |
groupId | query | String | 否 | 搜索条件->是否根据分组ID搜索 |
apiName | query | String | 否 | 搜索条件->是否根据api名称搜索(URL-encoded) |
env | query | String | 否 | 搜索条件->根据api发布环境即线上或者测试搜索 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | List | 是 | api对象列表 (不分页) |
示例
请求示例
URL
/aaccess-restriction/ip-rules/05rc111q-79bv-4e62-7u22-c0fcfd79611a/apis?groupId=&apiName=xxx&env=1
响应示例
{
"data": [
{
"id": "8a8082906b938ed0016b939db34e0002",
"requestMethod": "0",
"requestPath": "/a",
"apiGroupManageId": "b74265ca-65a1-41aa-a249-1918a6af4583",
"apiName": "测试参数api",
"env" :"1",
"ipRuleId": "05rc111q-79bv-4e62-7u22-c0fcfd79611a",
"ipRuleName": "ipRule1"
},
{
"id": "e4e5038d72ab3d9c0172acae761d0007",
"requestMethod": "0",
"requestPath": "/b",
"apiGroupManageId": "b74265ca-65a1-41aa-a249-1918a6af4583",
"apiName": "newapi",
"env" :"1",
"ipRuleId": null,
"ipRuleName": null
}
]
}
查看发布历史列表
描述
- 查看接口发布历史记录分页列表
URI
GET /api-history/v1/api/{id}/versions?env={env}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | api ID |
env | query | String | 是 | 发布环境,1: 线上,2:测试 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 发布历史记录分页对象 |
示例
查看接口发布历史记录
URL
/api-history/v1/api/51a71426183747b097c526fbf055436d/versions?env=1
响应示例
{
"pageNo": 1,
"pageSize": 10,
"totalCount": 100,
"data": [
{
"id": "0a4656be-26ef-4d5e-8886-9dad8f2ce321",
"apiId": "51a71426183747b097c526fbf055436d",
"groupId": "51a71426183747b097c526fbf055436d",
"version": "20210324113450277",
"env": 1,
"isRelease": 1,
"storeFlag": 0,
"remark": "这是备注",
"createdTime": "2020-10-20T14:25:02Z"
}
]
}
查看发布历史详情
描述
- 查看接口发布历史详情
URI
GET /api-history/v1/api/{id}/versions/{historyId}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 接口 ID |
historyId | path | String | 是 | 发布历史 ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api对象 |
示例
URL
/api-history/v1/api/0a4656be-26ef-4d5e-8886-9dad8f2ce321/versions/0a4656be-26ef-4d5e-8886-9dad8f2ce321
响应示例
{
"constant": [
{
"id": "3f03bc8c-d247-448b-9878-5490bbfe48d7",
"apiId": "828082aa6eb4c7e2016eb51f0c380000",
"name": "ddd",
"value": "fff",
"position": "1",
"description": "这是一段描述",
"createdTime": "2019-11-29T03:39:53.000+0000",
"updatedTime": null,
"isDeleted": "0"
},
{
"id": "85f59c7d-a7d9-49c6-84a5-061430cb73ac",
"apiId": "828082aa6eb4c7e2016eb51f0c380000",
"name": "ggg",
"value": "hhh",
"position": "0",
"description": "这是一段描述",
"createdTime": "2019-11-29T03:39:53.000+0000",
"updatedTime": null,
"isDeleted": "0"
}
],
"headers": [
{
"id": "8910f19a-db21-4184-b92b-9e947eef4093",
"apiId": "4028098171aaf4790171ab233a800000",
"name": "ruler",
"description": "this is a description!",
"backendPositionMapping": "1",
"backendNameMapping": "cars[].name",
"createdTime": "2020-04-24T07:42:25Z",
"updatedTime": null,
"isDeleted": "0"
},
{
"id": "ab22d87e-e0e0-42c2-99d2-a713de5becf4",
"apiId": "4028098171aaf4790171ab233a800000",
"name": "picture",
"description": "this is a description",
"backendPositionMapping": "3",
"backendNameMapping": "cars[].models",
"createdTime": "2020-04-24T07:42:25Z",
"updatedTime": null,
"isDeleted": "0"
}
],
"reqMethod": "GET",
"backendType": "0",
"groupId": "8a8082906b879b2b016b8816a0100000",
"description": "aws测试1",
"writeTimeout": null,
"errorCode": [
{
"id": "828082aa6eb53903016eb53e5d0f0002",
"apiId": "828082aa6eb4c7e2016eb51f0c380000",
"code": 400,
"info": "1",
"description": "kkk",
"createdTime": "2019-11-29T03:39:53.000+0000",
"updatedTime": null,
"isDeleted": "0"
},
{
"id": "828082aa6eb53903016eb53e5d0f0003",
"apiId": "828082aa6eb4c7e2016eb51f0c380000",
"code": 500,
"info": "1",
"description": "lll",
"createdTime": "2019-11-29T03:39:53.000+0000",
"updatedTime": null,
"isDeleted": "0"
}
],
"isSupportedCors": "0",
"type": "1",
"routeName": "1574996741101",
"resModelId": "",
"isDeleted": "0",
"reqModelId": "",
"createdTime": "2019-11-29T03:05:41.000+0000",
"id": "828082aa6eb4c7e2016eb51f0c380000",
"isReleased": "0",
"authenticationMode": "0",
"reqPath": "/ad",
"resTemplate": "",
"updatedTime": "2019-11-29T03:39:53.000+0000",
"reqTemplate": "",
"faultTolerant": "1",
"resContentType": "application/json",
"serviceName": "1574996741101",
"params": [
{
"id": "3b0eb26d-4cfe-4ee8-811c-76a343cf5a99",
"apiId": "828082aa6eb4c7e2016eb51f0c380000",
"modelParamId": "",
"name": "Action",
"position": "2",
"type": "0",
"isRequired": "1",
"defaultValue": "userlist",
"description": "",
"backendPositionMapping": "2",
"backendNameMapping": "Action",
"createdTime": "2019-11-29T03:39:53.000+0000",
"updatedTime": null,
"isDeleted": "0"
}
],
"apiStoreFlag": "0",
"requestDemo": "curl ...",
"rootUserId": "1111",
"userId": "1111",
"backendReqMethod": "0",
"retries": null,
"readTimeout": null,
"backendTimeout": 2000,
"name": "整改测试",
"backendAddr": "http://example.com",
"style": "1",
"reqProtocol": "0",
"backendPath": "/",
"resExampleSuccess": "",
"resExampleFail": "",
"successReturnDemo": "200 ok",
"failReturnDemo": "500 not ok"
}
发布历史版本
描述
- 发布历史版本
URI
POST /api-history/v1/api/{id}/versions/{historyId}/action/release
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 接口 ID |
historyId | path | String | 是 | 历史记录 ID |
description | body | String | 否(不确定) | 备注 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
查看接口发布历史记录
URL
/api-history/v1/api/{id}/versions/{historyId}/action/release
响应示例
"ok"
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
历史记录不存在 | 500 | ||
该接口正在 API 商店售卖,不能进行线上操作 | 500 | ||
该版本正在使用中,请勿重复发布 | 500 | ||
API 信息不正确,考虑可能与当前版本相差过大 | 500 |
查询所有应用列表
描述
- api授权应用时,展示所有应用列表
URI
GET /v1/api/{id}/apps?search={}&env={}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 当前api的id |
search | query | String | 否 | 应用名称(URL-encoded)/应用ID |
env | query | String | 是 | 环境 1-线上 2-测试 3-全部 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | List | 是 | app对象列表 |
示例
请求示例
HTTP
/v1/api/e4e5038d72ab3d9c0172ad05bf420008/apps
响应示例
[
{
"id": "03db455b-36cd-4e62-98e7-c0fcfd7961ee",
"appName": "应用名称1",
"apiId": "e4e5ceb372d10d840172d9c55c930000"
},
{
"id": "22a56e1-36cd-4e62-98e7-c0fcfd7961ee",
"appName": "应用名称2",
"apiId": null
}
]
添加授权
描述
- app认证的api授权给多个应用
URI
POST /v1/api/{id}/action/authorization
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 当前api的id |
longTermFlag | body | String | 是 | 授权有效期 1-短期 2-长期 |
validDate | body | String | 否 | 授权有效期 时间 |
env | body | String | 是 | 环境 1-线上 2-测试 |
groupId | body | String | 是 | 当前api所在分组id |
apps | body | String | 是 | 要授权的应用资源集合名称 |
id | body | String | 是 | 要授权的应用 ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
授权给一个或多个应用
URL
/v1/api/e4e5ce9472c5617c0172c579567e0001/action/authorization
{
"longTermFlag": "1",
"validDate": "2020-12-23 11:39:55",
"env": "1",
"apps": [
{
"id": "2c9180896ae26c9f016ae27384b90000"
},
{
"id": "2c9180896ae34543016ae37748850002"
}
]
}
成功响应示例
"ok"
失败响应示例1
{
"code": "702.001085",
"requestId": "03db455b-36cd-4e62-98e7-c0fcfd7961ee",
"message": "授权失败,当前api为非APP认证api,无法授权应用"
}
失败响应示例2
{
"code": "702.001085",
"requestId": "03db455b-36cd-4e62-98e7-c0fcfd7961ee",
"message": "授权失败,选择的应用中存在已授权的应用,请重新选择"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.001085 | 授权失败,当前api为非APP认证api,无法授权应用 | 500 | 无 |
702.001086 | 授权失败,选择的应用中存在已授权的应用,请重新选择 | 500 | 无 |
解除授权
描述
- 当前api解除授权一个或多个应用
URI
POST /v1/api/action/unauthorization
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ids | body | String | 是 | 要解除授权的应用api资源集合名称 |
id | body | String | 是 | 应用和api授权关系id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例1
解除授权一个应用
URL
/v1/api/action/unauthorization
{
"ids": [
{
"id": "2c9180896ae26c9f016ae27384b90000"
}
]
}
请求示例2 解除授权多个应用
URL
/v1/api/action/unauthorization
{
"ids": [
{
"id": "2c9180896ae26c9f016ae27384b90000"
},
{
"id": "wqwewcx896ae26c9f016ae33221b9000"
}
]
}
响应示例
"ok"
分页查询已绑定应用列表
描述
- 分页查询已绑定应用列表
URI
GET /v1/api/{id}/binded-apps/{pageNo}/{pageSize}?search=&env=
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | api的id |
pageNo | path | String | 是 | 当前页码数 |
pageSize | path | String | 是 | 每页上应用的条数 |
search | query | String | 否 | 搜索条件的应用名称(URL-encoded)/应用ID |
env | query | String | 是 | 环境 1-线上 2-测试 3-全部 |
longTermFlag | query | String | 否 | 查询有效授权,不传查询所有,传0查询有效授权 |
isManual | query | String | 否 | 查询控制台创建的应用,不传查询所有,传1查询控制台创建的应用 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | app分页对象 |
示例
请求示例
URL
/v1/api/8a8082906b938ed0016b939db34e0002/binded-apps/1/10?env=3
响应示例
{
"pageNo": 1,
"pageSize": 10,
"totalCount": 2,
"data": [
{
"appName": "应用名称1",
"appId":"354b455b-36cd-4e62-98e7-c0fcfd79ew21",
"appKey":"159427805593392",
"appSecret":"30f1eeb210f00bb76257a472d1136922349f5c4c",
"env": "1",
"isAuto": "0",
"createdTime": "2020-06-23T11:39:55Z",
"id": "03db455b-36cd-4e62-98e7-c0fcfd7961ee",
"validDate": "2020-12-23T11:39:55Z",
"longTermFlag": "1"
},
{
"appName": "应用名称2",
"appId":"3xz1455b-36cd-4e62-98e7-c0fcfd79rt22",
"appKey":"159470914137761",
"appSecret":"6bc590250d3c25eb5530149c1ef61194f4b5b904",
"env": "2",
"isAuto": "1",
"createdTime": "2020-06-23T11:39:55Z",
"id": "af3w455b-36cd-4e62-98e7-c0fcfd79rr1w",
"validDate": null,
"longTermFlag": "2"
}
]
}
流量管理
创建流控策略
创建流控策略
URI
POST /flow
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
name | body | String | 是 | 流控策略名称 |
duration | body | String | 是 | 时长 |
unit | body | String | 是 | 单位(second、minute、hour、day) |
apiTimes | body | String | 是 | API流量限制 |
userTimes | body | String | 否 | 用户流量限制 |
applicationTimes | body | String | 否 | 应用流量限制 |
description | body | String | 否 | 描述信息 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 流量策略对象 |
示例
请求示例
URL
/flow
{
"name": "测试策略名称",
"duration": "20",
"unit": "second",
"apiTimes": "100",
"userTimes": "80",
"applicationTimes": "50",
"description": "这是一个流控策略"
}
响应示例
{
"id": "8a8082906b879b2b016b8816a0100000",
"name": "测试策略名称",
"duration": "20",
"unit": "second",
"apiTimes": "100",
"userTimes": "80",
"applicationTimes": "50",
"description": "这是一个流控策略",
"user_id":"2f49b58a-eece-4793-a2c2-68d71352af5c",
"region": "cn-south-1",
"created_time": "2019-10-29 14:25:02",
"updated_time": "2019-10-29 18:25:02",
"is_deleted": "0"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.006011 | API名称参数为空或长度有误 | 500 | 无 |
702.001005 | API分组ID参数为空或长度有误 | 500 | 无 |
702.001006 | 请求协议参数为空或长度有误 | 500 | 无 |
702.001007 | 请求路径参数为空或长度有误 | 500 | 无 |
获取流控策略分页信息
获取流控策略分页信息
URI
GET /flow/{pageNo}/{pageSize}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
pageNo | path | Integer | 是 | 当前页码数 |
pageSize | path | Integer | 是 | 每页上api的条数 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 流量策略对象分页 |
示例
请求示例
URL
/flow/{pageNo}/{pageSize}
响应示例
{
"pageNo": 1,
"pageSize": 10,
"totalCount": 1,
"data": [
{
"id": "e4e511c77a13c550017a1913608f005c",
"name": "test-rsy-1",
"duration": 20,
"unit": "day",
"apiTimes": 100,
"userTimes": 80,
"applicationTimes": 50,
"description": "test",
"userId": "662dcda1-0c5a-41f3-85be-bef7b60921c2",
"region": "region-native-test",
"createdTime": "2021-06-17T08:25:38Z",
"updatedTime": "2021-06-17T08:35:04Z",
"isDeleted": "0",
"creator": "662dcda1-0c5a-41f3-85be-bef7b60921c2",
"accountId": "662dcda1-0c5a-41f3-85be-bef7b60921c2",
"apiCount": 0
}
]
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.001001 | 页码参数不正确 | 500 | 无 |
获取流控策略详情
获取流控策略详情
URI
GET /flow/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 流控策略ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 流量策略对象 |
示例
请求示例
URL
/flow/0a4656be-26ef-4d5e-8886-9dad8f2ce321
响应示例
{
"id": "8a8082906b879b2b016b8816a0100000",
"name": "测试策略名称",
"duration": "20",
"unit": "second",
"apiTimes": "100",
"userTimes": "80",
"applicationTimes": "50",
"description": "这是一个修改的流控策略",
"user_id":"2f49b58a-eece-4793-a2c2-68d71352af5c",
"region": "cn-south-1",
"created_time": "2019-10-29 14:25:02",
"updated_time": "2019-10-29 18:25:02",
"is_deleted": "0"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.001002 | 没有找到该ID对应资源 | 500 | 无 |
编辑流量策略
编辑流量策略
URI
PATCH /flow/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 流控策略id |
name | body | String | 是 | 流控策略名称 |
duration | body | String | 是 | 时长 |
unit | body | String | 是 | 单位 |
apiTimes | body | String | 是 | API流量限制 |
userTimes | body | String | 否 | 用户流量限制 |
applicationTimes | body | String | 否 | 应用流量限制 |
description | body | String | 否 | 描述信息 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 流量策略对象 |
示例
请求示例
URL
/flow/0a4656be-26ef-4d5e-8886-9dad8f2ce321
{
"name": "测试策略名称",
"duration": "20",
"unit": "second",
"apiTimes": "100",
"userTimes": "80",
"applicationTimes": "50",
"description": "这是一个修改的流控策略"
}
响应示例
{
"id": "8a8082906b879b2b016b8816a0100000",
"name": "测试策略名称",
"duration": "20",
"unit": "second",
"apiTimes": "100",
"userTimes": "80",
"applicationTimes": "50",
"description": "这是一个修改的流控策略",
"user_id":"2f49b58a-eece-4793-a2c2-68d71352af5c",
"region": "cn-south-1",
"created_time": "2019-10-29 14:25:02",
"updated_time": "2019-10-29 18:25:02",
"is_deleted": "0"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.006011 | API名称参数为空或长度有误 | 500 | 无 |
702.001005 | API分组ID参数为空或长度有误 | 500 | 无 |
702.001006 | 请求协议参数为空或长度有误 | 500 | 无 |
702.001007 | 请求路径参数为空或长度有误 | 500 | 无 |
删除流控策略
删除流控策略
URI
DELETE /flow/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 流控策略id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/flow/0a4656be-26ef-4d5e-8886-9dad8f2ce321
响应示例
"ok"
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.006009 | 流控策略不存在 | 500 | 无 |
702.006010 | 流控策略下存在绑定的api | 500 | 无 |
流控策略绑定 API
流控策略绑定 API,API 绑定流控策略
URI
POST /flow/{id}/action/bind
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 流控策略id |
apiID | body | String | 是 | api的id |
env | body | String | 是 | api绑定插件的环境 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/flow/8a8082906b879b2b016b8816a0100000/action/bind
{
"apiParam": [
{
"apiID": "8a8082906b879b2b016b8816a0100000",
"env": "0"
}
]
}
响应示例
"OK"
错误码
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
703.002001 | 创建API实例失败 | 500 | 无 |
703.003001 | 创建kong实例失败 | 500 | 无 |
批量删除流控策略
批量删除流控策略
URI
POST /v1/flow/action/batch-delete
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ids | body | Array | 是 | 流控策略id列表 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL /v1/flow/action/batch-delete
{
"ids": [
{
"id": "5t3rd19-5eae-495f-85e8-9f5c3c8df8a1",
},
{
"id": "97c747b9-5eae-495f-85e8-9f5c3c8df8a1"
}
]
}
响应示例
"OK"
错误码
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.003015 | 流控策略不能删除 | 500 | 无 |
流控策略解绑 API
流控策略解绑 API
URI
POST /flow/action/unbind
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
flowBindingID | body | String | 是 | 流控策略绑定信息id |
apiID | body | String | 是 | api的id |
env | body | String | 是 | api绑定插件的环境 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/apig/apps/v1/flow/action/unbind
{
"apiParam": [
{
"flowBindingID": "8a8082906b879b2b016b8816a0100000",
"apiID": "8a8082906b879b2b016b8816a0100000",
"env": "0"
}
]
}
响应示例
"OK"
错误码
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
703.002001 | 创建API实例失败 | 500 | 无 |
703.003001 | 创建kong实例失败 | 500 | 无 |
获取已绑定api列表
流控策略解绑 API
URI
GET /flow/{id}/binded-apis/{pageNo}/{pageSize}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 流控策略id |
pageNo | path | String | 是 | 当前页码数 |
pageSize | path | String | 是 | 每页上api条数 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api列表分页对象 |
示例
请求示例
URL
/flow/8a8082906b879b2b016b8816a0100000/binded-apis/1/10
响应示例
{
"pageNo": 1,
"pageSize": 10,
"totalCount": 1,
"data": [
{
"id": "8a8082906b879b2b016b8816a0100000",
"ApiName": "api名称",
"req_method": "post",
"req_path": "/s",
"api_flow_env": "1",
"GroupnName": "分组名称",
"binding_time": "2019-10-29 14:25:02",
"ApiId":"2f49b58a-eece-4793-a2c2-68d71352af5c"
}
]
}
错误码
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
703.002001 | 创建API实例失败 | 500 | 无 |
703.003001 | 创建kong实例失败 | 500 | 无 |
获取流控策略可以绑定的所有api列表
查询绑定API时展示所有API列表
URI
GET /v1/flow/{id}/apis?groupID={groupId}&apiName={apiName}&env={env}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 流控策略id |
groupId | query | String | 否 | 搜索条件,分组Id |
apiName | query | String | 否 | 搜索条件,api名称 |
env | query | String | 否 | 搜索条件,api发布环境 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | List | 是 | api列表(不分页) |
示例
请求示例
URL
/flow/8a8082906b879b2b016b8816a0100000/apis
响应示例
{
"code": "200",
"message": "ok",
"data": [
{
"requestMethod": "4",
"requestPath": "/test111",
"id": "e4e58ac87a2c333c017a2ddb6aeb0016",
"flowId": "e4e511c77a13c550017a198e4c7a006a",
"flowName": "策略3",
"groupId": "a9a8ccde-c419-4eff-9b4a-b2bce3281b44",
"apiName": "name"
},
{
"id": "e4e58ac87a2c333c017a2dd499d40015",
"groupId": "a9a8ccde-c419-4eff-9b4a-b2bce3281b44",
"apiName": "test_api1",
"requestMethod": "0",
"requestPath": "/test1",
"flowId": null,
"flowName": null
},
{
"requestMethod": "1",
"requestPath": "/create/group",
"id": "e4e511f57a1e2140017a224f7b000011",
"flowId": null,
"flowName": null,
"groupId": "41b1d8e7-c4ad-4580-8569-8e9707236644",
"apiName": "创建分组"
},
{
"requestMethod": "0",
"id": "e4e58a3c7a1cc838017a1cf5e5bc0008",
"apiName": "子账号0618_4",
"flowId": null,
"flowName": null,
"requestPath": "/apig/apps/v1/groups/1/5",
"groupId": "5bf82b64-b47f-4a75-bb11-c0a13d1e0ddc"
}
],
"status": 200,
"requestId": "B076BA835B42428D8415ED6EC1997DA9"
}
获取所有可以绑定的流控策略列表
描述
- API绑定签名流控策略时,展示所有流控策略列表
URI
GET /v1/api/{id}/flow?flowName={flowName}&env={env}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 当前id |
flowName | query | String | 否 | 流控策略名称(URL-encoded) |
env | query | String | 是 | 环境 1-线上 2-测试 3-全部 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object(List) | 是 | 实例视图对象列表 |
示例
请求示例
HTTP
/v1/api/8a8082906b938ed0016b939db34e0002/flows?flowName=xxx&env=1
响应示例
[
{
"id": "55a56e1-36cd-4e62-98e7-c0fcfd7961ee",
"name": "测试策略名称1",
"duration": "20",
"unit": "second",
"apiTimes": "100",
"userTimes": "80",
"applicationTimes": "50",
"apiId": "e4e5ceb372d10d840172d9c55c930000"
},
{
"id": "12a56e1-36cd-4e62-98e7-c0fcfd7961ee",
"name": "测试策略名称2",
"duration": "20",
"unit": "second",
"apiTimes": "100",
"userTimes": "80",
"applicationTimes": "50",
"apiId": null
}
]
访问控制
创建访问控制
描述
- 创建访问控制
URI
POST /access-restriction/ip-rules
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
name | body | String | 是 | 访问控制名称 |
type | body | String | 是 | 访问控制类型,取值 black 或 white |
ips | body | String | 是 | 访问控制的 IP 列表,长度限制5000 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | IP限制对象 |
示例
请求示例
URL
/access-restriction/ip-rules
{
"name": "测试访问控制名称",
"type": "white",
"ips": "192.168.0.1;192.168.0.2"
}
响应示例
{
"id": "27f2603a-d860-11ea-bcc4-fa163e9b229b",
"name": "测试访问控制名称",
"type": "white",
"ips": "192.168.0.1;192.168.0.2",
"creator":"2f49b58a-eece-4793-a2c2-68d71352af5c",
"accountId": "2f49b58a-eece-4793-a2c2-68d71352af5c",
"region": "cn-south-1",
"availabilityZone": "cn-south-1a",
"created_time": "2019-10-29T14:25:02Z",
"updated_time": null,
"is_deleted": "0"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
获取访问控制分页信息
描述
- 获取访问控制分页信息
URI
GET /access-restriction/ip-rules/{pageNo}/{pageSize}?name={name}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
pageNo | path | Integer | 是 | 当前页码数 |
pageSize | path | Integer | 是 | 每页上api的条数 |
name | query | String | 否 | 访问控制名称(URL-encoded) |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object(Page) | 是 | 访问控制对象分页 |
示例
请求示例
URL
/access-restriction/ip-rules/{pageNo}/{pageSize}
响应示例
{
"pageNo": 1,
"pageSize": 10,
"totalCount": 1,
"data": [
{
"id": "0a4656be-26ef-4d5e-8886-9dad8f2ce321",
"name": "测试访问控制名称",
"ips": "192.168.0.1;192.168.0.2",
"type": "white",
"apiCount": 5,
"created_time": "2020-10-20T14:25:02Z",
"is_deleted": "0"
}
]
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.001001 | 页码参数不正确 | 500 | 无 |
获取访问控制详情
描述
- 获取访问控制详情
URI
GET /access-restriction/ip-rules/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | string | 是 | 访问控制id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 访问控制对象 |
示例
请求示例
URL
/access-restriction/ip-rules/0a4656be-26ef-4d5e-8886-9dad8f2ce321
响应示例
{
"id": "8a8082906b879b2b016b8816a0100000",
"name": "测试访问控制名称",
"ips": "192.168.0.1;192.168.0.2",
"type": "white",
"region": "cn-south-1",
"created_time": "2019-10-29 14:25:02",
"updated_time": "2019-10-29 18:25:02",
"is_deleted": "0"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.001002 | 没有找到该ID对应资源 | 500 | 无 |
编辑访问控制
描述
- 编辑访问控制
URI
PATCH /access-restriction/ip-rules/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 访问控制id |
name | body | String | 是 | 访问控制名称 |
type | body | String | 是 | ip类型,white 或者 black |
ips | body | String | 是 | 访问控制的 IP 列表,长度限制5000 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 流量策略对象 |
示例
请求示例
URL
/access-restriction/ip-rules/0a4656be-26ef-4d5e-8886-9dad8f2ce321
{
"name": "测试访问控制名称",
"type": "white",
"ips": "172.1.0.9;198.0.0.3",
}
响应示例
{
"id": "27f2603a-d860-11ea-bcc4-fa163e9b229b",
"name": "测试访问控制名称",
"type": "white",
"ips": "192.168.0.1;192.168.0.2",
"creator":"2f49b58a-eece-4793-a2c2-68d71352af5c",
"accountId": "2f49b58a-eece-4793-a2c2-68d71352af5c",
"region": "cn-south-1",
"availabilityZone": "cn-south-1a"
"created_time": "2019-10-29 14:25:02",
"updated_time": "2020-10-29 18:25:02",
"is_deleted": "0"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
删除访问控制
描述
- 删除访问控制(支持批量操作)
URI
POST /access-restriction/ip-rules/action/delete
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ids | body | Array | 是 | 访问控制 id 列表, 格式参考示例 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/access-restriction/ip-rules
{
"ids": [
{
"id": "5t3rd19-5eae-495f-85e8-9f5c3c8df8a1",
},
{
"id": "97c747b9-5eae-495f-85e8-9f5c3c8df8a1"
}
]
}
响应示例
ok
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.006009 | 访问控制不存在 | 500 | 无 |
702.006010 | 访问控制下存在绑定的api | 500 | 无 |
访问控制绑定api
描述
- 访问控制绑定API(支持批量操作) ,API绑定访问控制
URI
POST /access-restriction/ip-rules/{id}/action/bind
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 访问控制 id |
apis | body | Array | 是 | 要绑定的api id 列表, 格式参考示例 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
访问控制绑定API
URL
access-restriction/ip-rules/27f2c069-d860-11ea-bcc4-fa163e9b229b/action/bind
{
"apis": [
{
"env": "1",
"apiId": "8a8082906b879b2b016b8816a0100011"
},
{
"env": "1",
"apiId": "8a8082906b879b2b016b8816a0100022"
}
]
}
API绑定访问控制
URL
/access-restriction/ip-rules/27f2c069-d860-11ea-bcc4-fa163e9b229b/action/bind
{
"apis": [
{
"env": "1",
"apiId": "8a8082906b879b2b016b8816a0100011"
}
]
}
响应示例
"OK"
错误码
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
访问控制解绑api
描述
- 访问控制解绑 API(支持批量操作) ,API解绑访问控制
URI
POST /access-restriction/ip-rules/{id}/action/unbind
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 访问控制 ID |
apis | body | Array | 是 | 要解绑的 api id, 格式参考示例 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
访问控制解绑API
URL
/access-restriction/ip-rules/27f2c069-d860-11ea-bcc4-fa163e9b229b/action/unbind
{
"apis": [
{
"env": "1",
"apiId": "8a8082906b879b2b016b8816a0100011"
},
{
"env": "1",
"apiId": "8a8082906b879b2b016b8816a0100022"
}
]
}
API解绑访问控制
URL
/access-restriction/ip-rules/27f2c069-d860-11ea-bcc4-fa163e9b229b/action/unbind
{
"apis": [
{
"env": "1",
"apiId": "8a8082906b879b2b016b8816a0100011"
}
]
}
响应示例
"OK"
错误码
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
获取已绑定api列表
描述
- 获取已绑定api的列表
URI
GET /access-restriction/ip-rules/{id}/binded-apis/{pageNo}/{pageSize}?env={env}&groupId={groupId}&apiName={apiName}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 访问控制 ID |
pageNo | path | Integer | 是 | 当前页码数 |
pageSize | path | Integer | 是 | 每页上 API 的条数 |
env | query | String | 否 | 环境 1-线上 2-测试 3-全部 |
groupId | query | String | 否 | 接口分组 ID |
apiName | query | String | 否 | api名称(URL-encoded) |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 访问控制绑定api对象分页 |
示例
请求示例
URL
access-restriction/ip-rules/27f290f2-d860-11ea-bcc4-fa163e9b229b/binded-apis/1/10?env=1&groupId=xx&apiName=lz
响应示例
{
"pageNo": 1,
"pageSize": 10,
"totalCount": 1,
"data": [
{
"id":"2f49b58a-eece-4793-a2c2-68d71352af5c",
"apiId": "8a8082906b879b2b016b8816a0100000",
"apiName": "api名称",
"reqMethod": "post",
"reqPath": "/path",
"env": "1",
"groupName": "分组名称",
"createdTime": "2019-10-29T14:25:02Z"
}
]
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.001001 | 页码参数不正确 | 500 | 无 |
获取所有可以绑定的访问控制列表
描述
- api绑定访问控制时,展示所有访问控制列表
URI
GET /access-restriction/v1/apis/{apiId}/ip-rules?ipRuleName={ipRuleName}&env={env}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
apiId | path | String | 是 | 当前api的id |
ipRuleName | query | String | 否 | 访问控制名称(URL-encoded) |
env | query | String | 是 | 环境 1-线上 2-测试 3-全部 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object(List) | 是 | 实例视图对象列表 |
示例
请求示例
HTTP
/access-restriction/v1/apis/e4e5038d72ab3d9c0172ad05bf420008/ip-rules?ipRuleName=xx&env=x
响应示例
[
{
"id": "03db455b-36cd-4e62-98e7-c0fcfd7961ee",
"ips": "192.168.0.1",
"type": "black",
"ipRuleName": "访问控制1",
"apiId": "e4e5ceb372d10d840172d9c55c930000"
},
{
"id": "22a56e1-36cd-4e62-98e7-c0fcfd7961ee",
"ipRuleName": "访问控制2",
"ips": "192.168.0.1",
"type": "black",
"apiId": null
}
]
签名密钥
获取已绑定的秘钥
描述
- 查询当前API已绑定的签名秘钥列表
URI
GET /signature/v1/api/{apiId}/binded-signs?env={env}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
apiId | path | String | 是 | api的id |
env | query | String | 否 | 环境 1-线上 2-测试 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 签名秘钥列表 |
示例
请求示例
URL
/apps/v1/api/8a8082906b938ed0016b939db34e0002/binded-signs?env=
响应示例
[
{
"id": "af3w455b-36cd-4e62-98e7-c0fcfd79rr1w",
"signName": "Signature_ngar",
"signatureId":"354b455b-36cd-4e62-98e7-c0fcfd79ew21",
"signKey":"51a71426183747b097c526fbf055436d",
"signSecret":"e1cfe9703cb445ebb1b6d7a8d2cf920f",
"env": "1",
"createdTime": "2020-06-23T11:39:55Z"
},
{
"signName": "Signature_ngar",
"signatureId":"3xz1455b-36cd-4e62-98e7-c0fcfd79rt22",
"signKey":"51a71426183747b097c526fbf055436d",
"signSecret":"e1cfe9703cb445ebb1b6d7a8d2cf920f",
"env": "2",
"createdTime": "2020-06-23T11:39:55Z",
"id": "af3w455b-36cd-4e62-98e7-c0fcfd79rr1w"
}
]
分页查询已绑定API列表
描述
- 分页查询已绑定的api列表
URI
GET /v1/app/{id}/binded-apis/{pageNo}/{pageSize}?apiName=&groupId=&env=
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 当前应用id |
pageNo | path | Integer | 是 | 当前页码数 |
pageSize | path | Integer | 是 | 每页上应用的条数 |
apiName | query | String | 否 | api名称(URL-encoded) |
groupId | query | String | 否 | 分组id |
env | query | String | 否 | 环境 1-线上 2-测试 3-全部 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api分页对象 |
示例
请求示例
URL
/v1/apps/j00dc86f-735e-tt7a-bd9d-28b98540620e/binded-apis/1/10?apiName=xxx&groupId=xxx&env=3
响应示例
{
"pageNo": 1,
"pageSize": 10,
"totalCount": 2
"data": [
{
"id": "v51dc86f735ett7abd9d28b98540620e",
"apiName": "api001",
"requestMethod": "/getd",
"requestPath": "/a/b",
"groupName": "分组11",
"env": "2",
"isAuto":"0",
"validDate": "2020-12-24T03:03:07Z",
"longTermFlag": "1"
},
{
"id": "g62qc86f735ett7abd9d28b98540620e",
"apiName": "api220",
"requestMethod": "/postd",
"requestPath": "/ac/d",
"groupName": "分组22",
"env": "1",
"isAuto": "0",
"validDate": null,
"longTermFlag": "2"
}
]
}
绑定API
描述
- 当前应用绑定API
URI
POST /v1/app/{id}/action/bind
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 应用id |
longTermFlag | body | String | 是 | 授权有效期 1-短期 2-长期 |
validDate | body | String | 否 | 授权有效期 时间 |
env | body | String | 是 | 环境 1-线上 2-测试 |
apis | body | String | 是 | 要绑定的API资源集合名称 |
id | body | String | 是 | 要绑定的apiID |
groupId | body | String | 是 | api所在分组id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
v1/apps/m00dc86f-735e-tt7a-bd9d-28b98540620e/action/bind
{
"longTermFlag": "1",
"validDate": "2020-12-23T11:39:55Z",
"env": "1",
"apis": [
{
"id": "2c9180896ae26c9f016ae27384b90000",
"groupId":"5da95bcc-5506-41f2-8bf9-3923a3c39b17"
},
{
"id": "2c9180896ae34543016ae37748850002",
"groupId":"5da95bcc-5506-41f2-8bf9-3923a3c39b17"
}
]
}
成功响应示例
"ok"
失败响应示例1
{
"requestId": "j00dc86f-735e-tt7a-bd9d-28b98540620e",
"code": "702.001081",
"message": "绑定失败,选择的api中存在已绑定的api"
}
失败响应示例2
{
"requestId": "f00dc86f-735e-tt7a-bd9d-28b98540620e",
"code": "702.001082",
"message": "绑定失败,选择的api中存在非APP认证的api"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.001081 | 绑定失败,选择的api中存在已绑定的api | 500 | 无 |
702.001082 | 绑定失败,选择的api中存在非APP认证的api | 500 | 无 |
解绑API
描述
- 解除绑定当前应用已绑定的单个或多个api
URI
POST /v1/app/action/unbind
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ids | body | String | 是 | 要解绑的应用api绑定资源集合名称 |
id | body | String | 是 | 应用和api绑定关系id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例1
解除绑定一个api
URL
/v1/app/action/unbind
{
"ids": [
{
"id": "2c9180896ae26c9f016ae27384b90000"
}
]
}
请求示例2 解除绑定多个api
URL
/v1/app/action/unbind
{
"ids": [
{
"id": "2c9180896ae26c9f016ae27384b90000"
},
{
"id": "8b6550896ae26c9f016ae27384b90021"
}
]
}
响应示例
"ok"
APP认证的API列表查询
描述
- 查询绑定API时展示的API列表
URI
GET /v1/app/{id}/apis?groupId=&apiName=&env=
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 当前应用id |
groupId | query | String | 否 | 搜索条件->是否根据分组ID搜索 |
apiName | query | String | 否 | 搜索条件->是否根据api名称搜索(URL-encoded) |
env | query | String | 否 | 搜索条件->根据api发布环境即线上或者测试搜索 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 实例视图对象列表 |
示例
请求示例
URL
/v1/apps/e6db455b-36cd-4e62-98e7-c0fcfd7961te/apis/1/10000?groupId=03db455b-36cd-4e62-98e7-c0fcfd7961ee&apiName=&env=1
响应示例
{
"pageNo": 1,
"pageSize": 10000,
"totalCount": 2,
"data": [
{
"id": "8a8082906b938ed0016b939db34e0002",
"requestMethod": "0",
"requestPath": "/a",
"apiGroupManageId": "b74265ca-65a1-41aa-a249-1918a6af4583",
"apiName": "测试参数api",
"env" :"1",
"appId": "05rc111q-79bv-4e62-7u22-c0fcfd79611a",
"appName": "应用名称1"
},
{
"id": "e4e5038d72ab3d9c0172acae761d0007",
"requestMethod": "0",
"requestPath": "/b",
"apiGroupManageId": "b74265ca-65a1-41aa-a249-1918a6af4583",
"apiName": "newapi",
"env" :"1",
"appId": null,
"appName": null
}
]
}
重置APPSecret
描述
- 重置应用密钥
URI
PATCH /v1/app/{id}/secret/reset
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | appID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | app对象 |
示例
请求示例
URL
/v1/app/m00dc86f-735e-tt7a-bd9d-28b98540620e/secret/reset
响应示例
{
"id": "m00dc86f-735e-tt7a-bd9d-28b98540620e",
"name": "新应用",
"description": "应用描述",
"appKey": "3069372886",
"appSecret": "5f5dc8uycd504f139cd43b0a4a858dd2",
"userId": "1d44bfda-8fd2-4e2b-a99c-21bdf690c753",
"rootUserId": "1d44bfda-8fd2-4e2b-a99c-21bdf690c753",
"createdTime": "2020-06-23T03:03:07Z",
"updatedTime": "2020-06-23T09:03:07Z",
"isDeleted": "0"
}
服务编排
创建API编排
创建一个编排API
URI
POST /v1/apigroup/{groupId}/api/compose
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupId | path | String | 是 | api分组ID |
name | body | String | 是 | api名称 |
authenticationMode | body | String | 是 | 认证方式(0-免鉴权 1-IAM认证 2-APP认证) |
requestProtocol | body | String | 是 | 请求协议(0-HTTP 1-HTTPS) |
requestPath | body | String | 是 | 请求路径 |
requestMethod | body | String | 是 | 请求方法(0-GET 1-POST 2- PATCH 3-PUT 4-OPTIONS 5-DELETE 6-HEAD 7- ANY) |
description | body | String | 是 | api描述 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api对象 |
示例
请求示例
URL
/v1/apigroup/0a4656be-26ef-4d5e-8886-9dad8f2ce321/api/compose
{
"name": "编排测试",
"authenticationMode": "0",
"requestProtocol": "0",
"requestPath": "/a",
"requestMethod": "0",
"description": "这是一条编排api"
}
响应示例
{
"id": "828082aa6eb4c7e2016eb51f0c380000",
"groupId": "0a4656be-26ef-4d5e-8886-9dad8f2ce321",
"userId": "1111",
"rootUserId": "1111",
"name": "编排测试",
"type": "1",
"style": "2",
"authenticationMode": "0",
"routeName": "1574996741101",
"reqProtocol": "0",
"reqPath": "/a",
"reqMethod": "GET",
"apiStoreFlag": "0",
"description": "这是一条编排API",
"isReleased": "0",
"serviceName": "1574996741101",
"createdTime": "2019-11-29T03:05:41.101+0000",
"updatedTime": null,
"isDeleted": "0"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.001004 | API名称参数为空或长度有误 | 500 | 无 |
702.001005 | API分组ID参数为空或长度有误 | 500 | 无 |
702.001006 | 请求协议参数为空或长度有误 | 500 | 无 |
702.001007 | 请求路径参数为空或长度有误 | 500 | 无 |
702.001008 | 请求方法参数为空或长度有误 | 500 | 无 |
702.001014 | 鉴权参数为空或长度有误 | 500 | 无 |
编辑API编排
修改一个API编排
URI
PATCH /v1/api/{apiId}/compose
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
apiId | path | String | 是 | apiID |
groupId | body | String | 是 | api分组ID |
name | body | String | 是 | api名称 |
authenticationMode | body | String | 是 | 认证方式(0-免鉴权 1-IAM认证 2-APP认证) |
requestProtocol | body | String | 是 | 请求协议(0-HTTP 1-HTTPS) |
requestPath | body | String | 是 | 请求路径 |
requestMethod | body | String | 是 | 请求方法(0-GET 1-POST 2- PATCH 3-PUT 4-OPTIONS 5-DELETE 6-HEAD 7- ANY) |
description | body | String | 是 | api描述 |
示例
请求示例
URL
/v1/api/4028098171a5a1ad0171a5c919930000/compose
{
"groupId": "0a4656be-26ef-4d5e-8886-9dad8f2ce321",
"name": "编排测试",
"authenticationMode": "0",
"requestProtocol": "0",
"requestPath": "/a",
"requestMethod": "0",
"description": "这是一条编排api"
}
响应示例
{
"id": "828082aa6eb4c7e2016eb51f0c380000",
"groupId": "0a4656be-26ef-4d5e-8886-9dad8f2ce321",
"userId": "1111",
"rootUserId": "1111",
"name": "编排测试",
"type": "1",
"style": "2",
"authenticationMode": "0",
"routeName": "1574996741101",
"reqProtocol": "0",
"reqPath": "/a",
"reqMethod": "GET",
"apiStoreFlag": "0",
"description": "这是一条编排API",
"isReleased": "0",
"serviceName": "1574996741101",
"createdTime": "2020-08-29T03:05:41.101+0000",
"updatedTime": "2020-11-29T03:05:41.101+0000",
"isDeleted": "0"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
702.001004 | API名称参数为空或长度有误 | 500 | 无 |
702.001005 | API分组ID参数为空或长度有误 | 500 | 无 |
702.001006 | 请求协议参数为空或长度有误 | 500 | 无 |
702.001007 | 请求路径参数为空或长度有误 | 500 | 无 |
702.001008 | 请求方法参数为空或长度有误 | 500 | 无 |
702.001014 | 鉴权参数为空或长度有误 | 500 | 无 |
新增编排步骤
POST /v1/api/compose/{id}/steps
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
composer_Id | path | String | 是 | composerId |
name | body | String | 是 | 编排名称 |
code | body | String | 是 | 编排标识码 |
timeout | body | String | 是 | 超时时间 |
type | body | String | 是 | 编排类型(http(s)或 response) |
inputs | body | Object(ApiComposerStepsParam) | 是 | API编排内容参数表 |
outputs | body | Object(ApiComposerStepsParam) | 是 | API编排内容参数表 |
key | body | String | 是 | 编排参数key |
value | body | String | 是 | 编排参数value |
position | body | String | 是 | 编排参数类型(query;path;header;body) |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | ListApiDetailEO)> | 是 | api对象 |
示例
请求示例
{
"api_id":"",
"steps":[
{
"type": "http",
"name": "step1",
"code": "step1",
"method": "post",
"inputs": {
"query": {
"key1": {
"type": "string",
"value": "$.req.query.name",
"default": ""
},
"key2": {
"type": "string",
"value": "$.req.query.key2",
"default": ""
}
},
"path": {
"page": {
"type": "string",
"value": "$.req.query.page",
"default": ""
},
"size": {
"type": "string",
"value": "$.req.query.size",
"default": ""
}
},
"header": {
"key2": {
"type": "string",
"value": "$.req.query.key2",
"default": ""
}
},
"body": "$.req.body"
},
"url": "http://httpbin/post/{page}/{size}",
"timeout": 3000
},
{
"type": "response",
"name": "response",
"status": 200,
"outputs": {
"header": {
"header1": {
"type": "string",
"value": "$.step1.header.key1",
"default": ""
},
"header2": {
"type": "string",
"value": "$.step2.body.key2",
"default": ""
}
},
"body": {
"key1": {
"type": "string",
"value": "$.step1.body.key1",
"default": ""
},
"key2": {
"type": "string",
"value": "constant_value",
"default": ""
},
"key3": {
"type": "object",
"properties": {
"key3": {
"type": "string",
"value": "$.req.body.key3",
"default": ""
}
}
},
"students": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"value": "$.req.body.students[*].name"
}
}
}
},
"teachers": {
"type": "array",
"items": {
"type": "string",
"value": "$.req.body.teachers.name"
}
}
}
}
}
]
}
响应示例
{
"api_id":"",
"steps":[
{
"id": "dsddsqa2313wdedwquxq1396khk",
"type": "http",
"name": "step1",
"code": "step1",
"method": "post",
"inputs": {
"query": {
"key1": {
"type": "string",
"value": "$.req.query.name",
"default": ""
},
"key2": {
"type": "string",
"value": "$.req.query.key2",
"default": ""
}
},
"path": {
"page": {
"type": "string",
"value": "$.req.query.page",
"default": ""
},
"size": {
"type": "string",
"value": "$.req.query.size",
"default": ""
}
},
"header": {
"key2": {
"type": "string",
"value": "$.req.query.key2",
"default": ""
}
},
"body": "$.req.body"
},
"url": "http://httpbin/post/{page}/{size}",
"timeout": 3000
},
{
"id": "wetddsqa22qqwqxsxd6khe",
"type": "response",
"name": "response",
"status": 200,
"outputs": {
"header": {
"header1": {
"type": "string",
"value": "$.step1.header.key1",
"default": ""
},
"header2": {
"type": "string",
"value": "$.step2.body.key2",
"default": ""
}
},
"body": {
"key1": {
"type": "string",
"value": "$.step1.body.key1",
"default": ""
},
"key2": {
"type": "string",
"value": "constant_value",
"default": ""
},
"key3": {
"type": "object",
"properties": {
"key3": {
"type": "string",
"value": "$.req.body.key3",
"default": ""
}
}
},
"students": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"value": "$.req.body.students[*].name"
}
}
}
},
"teachers": {
"type": "array",
"items": {
"type": "string",
"value": "$.req.body.teachers.name"
}
}
}
}
}
]
}
]
}
编辑编排步骤
URI
PATCH /v1/api/compose/{id}/steps
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 要查看详情的composerId |
#
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | ListApiDetailEO | 是 | api对象 |
示例
请求示例
{
"api_id":"",
"steps":[
{
"type": "http",
"name": "step1",
"code": "step1",
"method": "post",
"inputs": {
"query": {
"key1": {
"type": "string",
"value": "$.req.query.name",
"default": ""
},
"key2": {
"type": "string",
"value": "$.req.query.key2",
"default": ""
}
},
"path": {
"page": {
"type": "string",
"value": "$.req.query.page",
"default": ""
},
"size": {
"type": "string",
"value": "$.req.query.size",
"default": ""
}
},
"header": {
"key2": {
"type": "string",
"value": "$.req.query.key2",
"default": ""
}
},
"body": "$.req.body"
},
"url": "http://httpbin/post/{page}/{size}",
"timeout": 3000
},
{
"type": "response",
"name": "response",
"status": 200,
"outputs": {
"header": {
"header1": {
"type": "string",
"value": "$.step1.header.key1",
"default": ""
},
"header2": {
"type": "string",
"value": "$.step2.body.key2",
"default": ""
}
},
"body": {
"key1": {
"type": "string",
"value": "$.step1.body.key1",
"default": ""
},
"key2": {
"type": "string",
"value": "constant_value",
"default": ""
},
"key3": {
"type": "object",
"properties": {
"key3": {
"type": "string",
"value": "$.req.body.key3",
"default": ""
}
}
},
"students": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"value": "$.req.body.students[*].name"
}
}
}
},
"teachers": {
"type": "array",
"items": {
"type": "string",
"value": "$.req.body.teachers.name"
}
}
}
}
}
]
}
响应示例
{
"api_id":"",
"steps":[
{
"id": "dsddsqa2313wdedwquxq1396khk",
"type": "http",
"name": "step1",
"code": "step1",
"method": "post",
"inputs": {
"query": {
"key1": {
"type": "string",
"value": "$.req.query.name",
"default": ""
},
"key2": {
"type": "string",
"value": "$.req.query.key2",
"default": ""
}
},
"path": {
"page": {
"type": "string",
"value": "$.req.query.page",
"default": ""
},
"size": {
"type": "string",
"value": "$.req.query.size",
"default": ""
}
},
"header": {
"key2": {
"type": "string",
"value": "$.req.query.key2",
"default": ""
}
},
"body": "$.req.body"
},
"url": "http://httpbin/post/{page}/{size}",
"timeout": 3000
},
{
"id": "wetddsqa22qqwqxsxd6khe",
"type": "response",
"name": "response",
"status": 200,
"outputs": {
"header": {
"header1": {
"type": "string",
"value": "$.step1.header.key1",
"default": ""
},
"header2": {
"type": "string",
"value": "$.step2.body.key2",
"default": ""
}
},
"body": {
"key1": {
"type": "string",
"value": "$.step1.body.key1",
"default": ""
},
"key2": {
"type": "string",
"value": "constant_value",
"default": ""
},
"key3": {
"type": "object",
"properties": {
"key3": {
"type": "string",
"value": "$.req.body.key3",
"default": ""
}
}
},
"students": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"value": "$.req.body.students[*].name"
}
}
}
},
"teachers": {
"type": "array",
"items": {
"type": "string",
"value": "$.req.body.teachers.name"
}
}
}
}
}
]
}
]
}
查询编排步骤详情
URL
GET /v1/api/compose/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 要查看详情的composerId |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api对象 |
示例
请求示例1
URL
/v1/api/compose/828082aa6eb4c7e2016eb51f0c380000
响应示例
{
"id":"828082aa6eb4c7e2016eb51f0c380000",
"name":"整改测试",
"groupName":"测试分组",
"reqMethod":"GET",
"style":"1",
"backendType":"2",
"authenticationMode":"0",
"groupId":"8a8082906b879b2b016b8816a0100000",
"description":"aws测试1",
"reqPath":"/ad",
"type":"1",
"routeName":"1574996741101",
"isDeleted":"0",
"rootUserId":"1111",
"userId":"1111",
"createdTime":"2019-11-29T03:05:41.000+0000",
"isReleased":"0",
"updatedTime":"2019-11-29T03:39:53.000+0000",
"steps":[
{
"id": "dsddsqa2313wdedwquxq1396khk",
"type": "http",
"name": "step1",
"code": "step1",
"method": "post",
"url": "http://httpbin/post/{page}/{size}",
"timeout": 3000,
"inputs": {
"query": {
"key1": {
"type": "string",
"value": "$.req.query.name",
"default": ""
},
"key2": {
"type": "string",
"value": "$.req.query.key2",
"default": ""
}
},
"path": {
"page": {
"type": "string",
"value": "$.req.query.page",
"default": ""
},
"size": {
"type": "string",
"value": "$.req.query.size",
"default": ""
}
},
"header": {
"key2": {
"type": "string",
"value": "$.req.query.key2",
"default": ""
}
},
"body": "$.req.body"
}
},
{
"id": "wetddsqa22qqwqxsxd6khe",
"type": "response",
"name": "response",
"status": 200,
"outputs": {
"header": {
"header1": {
"type": "string",
"value": "$.step1.header.key1",
"default": ""
},
"header2": {
"type": "string",
"value": "$.step2.body.key2",
"default": ""
}
},
"body": {
"key1": {
"type": "string",
"value": "$.step1.body.key1",
"default": ""
},
"key2": {
"type": "string",
"value": "constant_value"
},
"key3": {
"type": "object",
"properties": {
"key4": {
"type": "string",
"value": "$.step1.body.key3",
"default": ""
}
}
},
"students": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"value": "$.req.body.students[*].name"
}
}
}
},
"teachers": {
"type": "array",
"items": {
"type": "string",
"value": "$.req.body.teachers.name"
}
}
}
}
}
]
}
分页查询 api 编排列表
查询某个分组下或者全部分组下的 api,并进行分页展示
URL
GET /api/{pageNo}/{pageSize}?groupId={groupId}&name={name}&env={env}&isRelease={isRelease}&composerFlag={}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
pageNo | path | Integer | 是 | 当前页码数 |
pageSize | path | Integer | 是 | 每页上api的条数 |
groupId | query | String | 否 | 搜索条件->是否根据分组ID搜索 |
name | query | String | 否 | 搜索条件->是否根据api名称搜索(URL-encoded) |
env | query | String | 否 | 搜索条件->是否根据api发布环境即线上或者测试搜索(流控所用的查询) |
isRelease | query | String | 否 | 搜索条件->是否根据api发布环境即线上或者测试搜索 |
composerFlag | query | String | 是 | 1-编排api,0-普通api,此处传1 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object(Page) | 是 | 实例视图对象分页 |
接口更新:使用backendType、isRelease、requestPath、requestMethod字段代替先前字段
示例
正确请求示例
URL
/api/1/10?composerFlag=1
正确响应示例
{
"pageNo": 1,
"pageSize": 10,
"totalCount": 1,
"data": [
{
apiGroupManageId: "dacd5cf8-30bb-4f40-a54f-c5f8babea33f"
apiGroupName: "test_zjl"
apiName: "zjl_test"
apiStoreFlag: "1"
apiStyle: "0"
backendType: "2"
composerFlag: "1"
createdTime: "2021-06-16T06:55:29Z"
description: "无"
flowId: null
flowName: null
id: "e4e5359e79f89059017a139a7e130008"
isRelease: "2"
isReleased: "2"
reqMethod: "0"
reqPath: "pat/{id}"
requestMethod: "0"
requestPath: "pat/{id}"
}
]
}
消息集成
topic管理
分页查询topic列表
分页查询消息列表
URI
GET/message/v1/topic/{pageNo}/{pageSize}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
pageNo | path | int | 是 | 当前页码数 |
pageSize | path | int | 是 | 每页上的topic条数 |
appId | query | String | 否 | appId |
name | query | String | 否 | topic名称 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api对象 |
示例
请求示例
URL
/message/v1/topic/1/10
响应示例
{
"code": "200",
"message": "ok",
"data": {
"code": 1,
"msg": null,
"pageNo": 1,
"pageSize": 10,
"totalCount": 11,
"pages": 2,
"data": [
{
"id": "1413381040352894977",
"name": "T_rac_ds180b20_0709",
"description": "T_rac_ds180b20_0709主题",
"appId": "AAF87A1DE81B4E59AE7D36AAD7B40643",
"appName": null,
"type": 0,
"creator": null,
"createdTime": "2021-07-09T06:15:02",
"updatedTime": "2021-07-09T06:15:02",
"status": 1
},
{
"id": "1413385997386903554",
"name": "T_rac_ds180b20_0709_001",
"description": "T_rac_ds180b20_0709主题",
"appId": "AAF87A1DE81B4E59AE7D36AAD7B40643",
"appName": null,
"type": 0,
"creator": null,
"createdTime": "2021-07-09T14:34:15",
"updatedTime": "2021-07-09T14:34:15",
"status": 1
},
{
"id": "1413386016336769026",
"name": "T_rac_ds180b20_0709_002",
"description": "T_rac_ds180b20_0709主题",
"appId": "AAF87A1DE81B4E59AE7D36AAD7B40643",
"appName": null,
"type": 0,
"creator": null,
"createdTime": "2021-07-09T14:34:20",
"updatedTime": "2021-07-09T14:34:20",
"status": 1
},
{
"id": "1413386029171339265",
"name": "T_rac_ds180b20_0709_003",
"description": "T_rac_ds180b20_0709主题",
"appId": "AAF87A1DE81B4E59AE7D36AAD7B40643",
"appName": null,
"type": 0,
"creator": null,
"createdTime": "2021-07-09T14:34:23",
"updatedTime": "2021-07-09T14:34:23",
"status": 1
},
{
"id": "1413386041603256321",
"name": "T_rac_ds180b20_0709_004",
"description": "T_rac_ds180b20_0709主题",
"appId": "AAF87A1DE81B4E59AE7D36AAD7B40643",
"appName": null,
"type": 0,
"creator": null,
"createdTime": "2021-07-09T14:34:26",
"updatedTime": "2021-07-09T14:34:26",
"status": 1
},
{
"id": "1413386055553511426",
"name": "T_rac_ds180b20_0709_005",
"description": "T_rac_ds180b20_0709主题",
"appId": "AAF87A1DE81B4E59AE7D36AAD7B40643",
"appName": null,
"type": 0,
"creator": null,
"createdTime": "2021-07-09T14:34:29",
"updatedTime": "2021-07-09T14:34:29",
"status": 1
},
{
"id": "1413386066353844226",
"name": "T_rac_ds180b20_0709_006",
"description": "T_rac_ds180b20_0709主题",
"appId": "AAF87A1DE81B4E59AE7D36AAD7B40643",
"appName": null,
"type": 0,
"creator": null,
"createdTime": "2021-07-09T14:34:32",
"updatedTime": "2021-07-09T14:34:32",
"status": 1
},
{
"id": "1413386077921734657",
"name": "T_rac_ds180b20_0709_007",
"description": "T_rac_ds180b20_0709主题",
"appId": "AAF87A1DE81B4E59AE7D36AAD7B40643",
"appName": null,
"type": 0,
"creator": null,
"createdTime": "2021-07-09T14:34:35",
"updatedTime": "2021-07-09T14:34:35",
"status": 1
},
{
"id": "1413386090517229570",
"name": "T_rac_ds180b20_0709_008",
"description": "T_rac_ds180b20_0709主题",
"appId": "AAF87A1DE81B4E59AE7D36AAD7B40643",
"appName": null,
"type": 0,
"creator": null,
"createdTime": "2021-07-09T14:34:38",
"updatedTime": "2021-07-09T14:34:38",
"status": 0
},
{
"id": "1413386103788007425",
"name": "T_rac_ds180b20_0709_009",
"description": "T_rac_ds180b20_0709主题",
"appId": "AAF87A1DE81B4E59AE7D36AAD7B40643",
"appName": null,
"type": 0,
"creator": null,
"createdTime": "2021-07-09T14:34:41",
"updatedTime": "2021-07-09T14:34:41",
"status": 0
}
]
},
"status": 200,
"requestId": "B0B5EEF0C13F49FFBC32D1E98C31FACC"
}
新建topic
创建一条topic
URI
POST /message/v1/topic
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
name | body | String | 是 | topic名称 |
appId | body | String | 是 | topic所属的应用id |
description | body | String | 否 | topic描述 |
appName | body | String | 否 | topic所属的应用名称 |
type | body | byte | 否 | 0-只读 1-读写 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | topic对象 |
示例
请求示例
URL
/message/v1/topic
{
}
响应示例
编辑topic
创建一条topic
URI
PATCH/message/v1/topic/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | topic的id |
name | body | String | 是 | topic的名称 |
appId | body | String | 是 | topic所属的应用id |
description | body | String | 否 | topic描述 |
appName | body | String | 否 | topic所属的应用名称 |
type | body | byte | 否 | 0-只读 1-读写 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | topic对象 |
示例
请求示例
URL
/message/v1/topic
{
}
响应示例
删除topic
批量删除topic
URI
DELETE /message/v1/topic/action/delete
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ids | body | String | 是 | 要删除topic的id列表 |
id | body | String | 是 | 要删除topic的具体id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/message/v1/topic/action/delete
{
"ids":[
"id":"A2923UKEC0238UDKBIEUH72"
]
}
响应示例
启动topic
批量启动topic
URI
POST/message/v1/topic/action/start
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ids | path | String | 是 | 要启动topic的id列表 |
id | body | String | 是 | 要启动的topic的id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/message/v1/topic/action/start
{
"ids":[
"id":"A2923UKEC0238UDKBIEUH72"
]
}
响应示例
停止topic
批量停止topic
URI
POST /message/v1/topic/action/stop
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ids | path | String | 是 | 要停止topic的id列表 |
id | body | String | 是 | 要停止的topic的id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/message/v1/topic/action/stop
{
"ids":[
"id":"A2923UKEC0238UDKBIEUH72"
]
}
响应示例
获取topic详情
获取一条topic详情
URI
GET /message/v1/topic/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | topic id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
**请求示例**
URL
/message/v1/topic/1413381040352894977
响应示例
{
"code": "200",
"message": "ok",
"data": {
"id": "1413381040352894977",
"name": "T_rac_ds180b20_0709",
"description": "T_rac_ds180b20_0709主题",
"appId": "AAF87A1DE81B4E59AE7D36AAD7B40643",
"appName": null,
"type": 0,
"creator": null,
"createdTime": "2021-07-09T06:15:02",
"updatedTime": "2021-07-09T06:15:02",
"status": 1
},
"status": 200,
"requestId": "B5B6BA53A99B43D5B3BE860D7C3E7678"
}
应用发布topic
分页查询应用发布topic列表
分页查询应用发布topic列表
URI
GET /message/v1/pubtopic/{pageNo}/{pageSize}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
pageNo | path | int | 是 | 当前页码数 |
pageSize | path | int | 是 | 每页上的topic条数 |
appId | query | String | 否 | appId |
topicName | query | String | 否 | topic名称 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 应用发布topic对象 |
示例
请求示例
URL
/message/v1/pubtopic/1/10
响应示例
{
"code": "200",
"message": "ok",
"data": {
"code": 1,
"msg": null,
"pageNo": 1,
"pageSize": 10,
"totalCount": 12,
"pages": 2,
"data": [
{
"updatedTime": "2021-07-21 09:30:39",
"topicId": "1417449179520724994",
"creator": "inspurtest01",
"appName": "iais-02",
"appId": "09944ec2-b433-4dfc-bbdb-3a1965f514b9",
"description": "qweqwe",
"createdTime": "2021-07-20 19:40:04",
"topicName": "T_jiejie",
"id": "989d69c0-187b-413d-8e4c-cf072b25b83d",
"status": 1
},
{
"updatedTime": "2021-07-20 20:21:00",
"topicId": "1417448566464475138",
"creator": "inspurtest01",
"appName": "iais-02",
"appId": "09944ec2-b433-4dfc-bbdb-3a1965f514b9",
"description": "qwd",
"createdTime": "2021-07-20 19:37:43",
"topicName": "T_gouzi",
"id": "2ad95e6d-9228-4dc2-8268-b87723c4d2ee",
"status": 1
},
{
"updatedTime": "2021-07-20 19:35:43",
"topicId": "1417415308703969281",
"creator": "inspurtest01",
"appName": "iais-02",
"appId": "09944ec2-b433-4dfc-bbdb-3a1965f514b9",
"description": "aaaa",
"createdTime": "2021-07-20 19:35:43",
"topicName": "T_lushihao",
"id": "65b9c2fc-27f9-404e-8180-647941a920c5",
"status": 1
},
{
"updatedTime": "2021-07-20 19:35:19",
"topicId": "1417413268107964418",
"creator": "inspurtest01",
"appName": "iais-02",
"appId": "09944ec2-b433-4dfc-bbdb-3a1965f514b9",
"description": "aaa",
"createdTime": "2021-07-20 19:35:19",
"topicName": "T_lushihao",
"id": "39bba478-db0c-4c60-b149-77631c0247c3",
"status": 1
},
{
"updatedTime": "2021-07-20 19:35:11",
"topicId": "1417414000341168129",
"creator": "inspurtest01",
"appName": "iais-02",
"appId": "09944ec2-b433-4dfc-bbdb-3a1965f514b9",
"description": "aaa",
"createdTime": "2021-07-20 19:35:11",
"topicName": "T_lushihao",
"id": "21781847-d61c-441c-88b1-28feb33a2221",
"status": 1
},
{
"updatedTime": "2021-07-21 10:25:49",
"topicId": "1417411867072016385",
"creator": "inspurtest01",
"appName": "iais-02",
"appId": "09944ec2-b433-4dfc-bbdb-3a1965f514b9",
"description": "aaaa",
"createdTime": "2021-07-20 19:34:57",
"topicName": "T_lushihao",
"id": "c983cae3-00d3-4ba8-b468-9328001801ed",
"status": 1
},
{
"updatedTime": "2021-07-20 17:33:30",
"topicId": "1415645230497030146",
"creator": "inspurtest01",
"appName": "iais-02",
"appId": "09944ec2-b433-4dfc-bbdb-3a1965f514b9",
"description": "aaa",
"createdTime": "2021-07-20 17:27:02",
"topicName": "T_asdqw",
"id": "3afdcef3-bc21-483e-bc20-9df248dcba36",
"status": 2
},
{
"updatedTime": "2021-07-21 09:31:15",
"topicId": "1413386103788007425",
"creator": "inspurtest01",
"appName": "iais-02",
"appId": "09944ec2-b433-4dfc-bbdb-3a1965f514b9",
"description": "desc-001",
"createdTime": "2021-07-16 14:16:01",
"topicName": "T_rac_ds180b20_0709_009",
"id": "f1d1fa07-e1d0-4508-9025-dbd564dc2f57",
"tag": "sss",
"status": 1
},
{
"updatedTime": "2021-07-16 12:50:51",
"topicId": "1413386041603256321",
"creator": "inspurtest01",
"appName": "test",
"appId": "101",
"description": "desc-001",
"createdTime": "2021-07-16 12:50:51",
"topicName": "T_rac_ds180b20_0709_004",
"id": "961c5815-5dfe-4741-bcc5-0f365f1ab9cd",
"tag": "sss",
"status": 1
},
{
"updatedTime": "2021-07-20 15:47:49",
"topicId": "1413386066353844226",
"creator": "inspurtest01",
"appName": "test",
"appId": "101",
"description": "desc-0012222666",
"createdTime": "2021-07-16 12:50:49",
"topicName": "T_rac_ds180b20_0709_006",
"id": "ee40dcae-6846-4127-8ae8-2ee0728561a9",
"tag": "sss2222",
"status": 2
}
]
},
"status": 200,
"requestId": "1291F6FAE89546D29486D90B641B5072"
}
新建应用发布topic
创建一条应用发布topic
URI
POST /message/v1/pubtopic
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
topicIds | body | Object | 是 | topicId 的json数组 |
appId | body | String | 是 | 应用id |
description | body | String | 否 | topic描述 |
tag | body | String | 否 | 标签 |
status | body | int | 是 | 0删除;1启用;2停用 默认1 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 对象 |
示例
请求示例
URL
/message/v1/pubtopic
{
"topicIds":[
{
"topicId":"1413386066353844226"
},
{
"topicId":"1413386041603256321"
}
],
"appId":"101",
"tag":"sss",
"description":"desc-001",
"status":"1"
}
响应示例
{
"code": "200",
"message": "ok",
"data": null,
"status": 200,
"requestId": "80E92BC980AD4EACB6F3CD119283165B"
}
编辑应用发布topic
编辑应用发布topic
URI
PATCH /message/v1/pubtopic/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 发布id |
appId | body | String | 是 | 应用id |
description | body | String | 否 | 描述 |
tag | body | String | 否 | 标签 |
status | body | int | 是 | 0删除;1启用;2停用 默认1 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 对象 |
示例
请求示例
URL
/message/v1/pubTopic/ee40dcae-6846-4127-8ae8-2ee0728561a9
{
"appId":"101",
"tag":"sss2222",
"description":"desc-0012222",
"status":"2"
}
响应示例
删除topic
批量删除应用发布topic
URI
DELETE /message/v1/pubtopic/action/delete
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ids | body | String | 是 | 要删除发布记录ids列表 |
id | body | String | 是 | 要删除发布记录的具体id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/message/v1/pubtopic/action/delete
{
"ids":[
{
"id":"a445e260-646a-41ed-812b-e3ec39e146f9"
},
{
"id":"87f80a9c-3d17-4610-94dd-3a81d27f6ffe"
}
]
}
响应示例
启用应用发布topic
批量启用应用发布topic
URI
POST /message/v1/pubtopic/action/start
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ids | body | String | 是 | 要启用发布记录ids列表 |
id | body | String | 是 | 要启用发布记录的具体id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/message/v1/pubtopic/action/start
{
"ids":[
{
"id":"a445e260-646a-41ed-812b-e3ec39e146f9"
},
{
"id":"87f80a9c-3d17-4610-94dd-3a81d27f6ffe"
}
]
}
响应示例
停用应用发布topic
批量停用应用发布topic
URI
POST /message/v1/pubtopic/action/stop
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ids | body | String | 是 | 要停用发布记录ids列表 |
id | body | String | 是 | 要停用发布记录的具体id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/message/v1/pubtopic/action/stop
{
"ids":[
{
"id":"a445e260-646a-41ed-812b-e3ec39e146f9"
},
{
"id":"87f80a9c-3d17-4610-94dd-3a81d27f6ffe"
}
]
}
响应示例
应用订阅topic
分页查询应用订阅topic列表
分页查询应用订阅topic列表
URI
GET /message/v1/subtopic/{pageNo}/{pageSize}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
pageNo | path | int | 是 | 当前页码数 |
pageSize | path | int | 是 | 每页上的topic条数 |
appId | query | String | 否 | appId |
topicName | query | String | 否 | topic名称 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 应用订阅topic对象 |
示例
请求示例
URL
/message/v1/subtopic/1/10
响应示例
{
"code": "200",
"message": "ok",
"data": {
"code": 1,
"msg": null,
"pageNo": 1,
"pageSize": 10,
"totalCount": 2,
"pages": 1,
"data": [
{
"updatedTime": "2021-07-21 15:03:07",
"topicId": "1413386103788007425",
"creator": "inspurtest01",
"appName": "test",
"appId": "101",
"description": "desc-0012222",
"createdTime": "2021-07-17 14:08:52",
"topicName": "T_rac_ds180b20_0709_009",
"id": "01589346-216e-4823-bf07-79f192f58dfa",
"tag": "sss2222",
"status": 1
},
{
"updatedTime": "2021-07-21 15:03:07",
"topicId": "1413386077921734657",
"creator": "inspurtest01",
"appName": "test",
"appId": "101",
"description": "desc-001",
"createdTime": "2021-07-17 14:08:51",
"topicName": "T_rac_ds180b20_0709_007",
"id": "5165356f-8240-46bd-a938-a9f683756e9a",
"tag": "sss",
"status": 1
}
]
},
"status": 200,
"requestId": "41DF0A3DA5704C2E8BA793C37D96AFE5"
}
新建应用订阅topic
创建一条应用订阅topic
URI
POST /message/v1/subtopic
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
topicIds | body | Object | 是 | topicId 的json数组 |
appId | body | String | 是 | 应用id |
description | body | String | 否 | topic描述 |
tag | body | String | 否 | 标签 |
status | body | int | 是 | 0删除;1启用;2停用 默认1 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 对象 |
示例
请求示例
URL
/message/v1/subtopic
{
"topicIds":[
{
"topicId":"1413386066353844226"
},
{
"topicId":"1413386041603256321"
}
],
"appId":"101",
"tag":"sss",
"description":"desc-001",
"status":"1"
}
响应示例
{
"code": "200",
"message": "ok",
"data": null,
"status": 200,
"requestId": "80E92BC980AD4EACB6F3CD119283165B"
}
编辑应用订阅topic
编辑应用订阅topic
URI
PATCH /message/v1/subtopic/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | 订阅id |
appId | body | String | 是 | 应用id |
description | body | String | 否 | 描述 |
tag | body | String | 否 | 标签 |
status | body | int | 是 | 0删除;1启用;2停用 默认1 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | 对象 |
示例
请求示例
URL
/message/v1/subTopic/ee40dcae-6846-4127-8ae8-2ee0728561a9
{
"appId":"101",
"tag":"sss2222",
"description":"desc-0012222",
"status":"2"
}
响应示例
删除应用订阅topic
批量删除应用订阅topic
URI
DELETE /message/v1/subtopic/action/delete
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ids | body | String | 是 | 要删除订阅记录ids列表 |
id | body | String | 是 | 要删除订阅记录的具体id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/message/v1/subtopic/action/delete
{
"ids":[
{
"id":"a445e260-646a-41ed-812b-e3ec39e146f9"
},
{
"id":"87f80a9c-3d17-4610-94dd-3a81d27f6ffe"
}
]
}
响应示例
启用应用订阅topic
批量启用应用订阅topic
URI
POST /message/v1/subtopic/action/start
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ids | body | String | 是 | 订阅topic记录ids列表 |
id | body | String | 是 | 订阅topic记录的具体id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/message/v1/subtopic/action/start
{
"ids":[
{
"id":"a445e260-646a-41ed-812b-e3ec39e146f9"
},
{
"id":"87f80a9c-3d17-4610-94dd-3a81d27f6ffe"
}
]
}
响应示例
停用应用订阅topic
批量停用应用订阅topic
URI
POST /message/v1/subtopic/action/stop
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ids | body | String | 是 | 要停用订阅记录ids列表 |
id | body | String | 是 | 要停用订阅记录的具体id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/message/v1/subtopic/action/stop
{
"ids":[
{
"id":"a445e260-646a-41ed-812b-e3ec39e146f9"
},
{
"id":"87f80a9c-3d17-4610-94dd-3a81d27f6ffe"
}
]
}
响应示例
函数api
查询函数api列表
查询api列表(不分页)
URI
GET /gate/fc/ichip-function/v1/api-list?idDb={isDb}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
isDb | path | boolean | 是 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | list | 是 | api对象列表 |
示例
请求示例
URL
/function/v1/api-list/true
响应示例
查询函数api详情
查询函数api详情
URI
GET /gate/fc/ichip-function/v1/api-info/{id}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | string | 是 | api的id |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api对象 |
示例
请求示例
URL
/function/v1/api-list/AOEJNFHUDC3832N12UN
响应示例
新建或修改函数api
创建或修改一条函数api
URI
POST /gate/fc/ichip-function/v1/api-info?isSave={xxx}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
isSave | query | String | 是 | 0-运行 1-保存 |
id | body | String | 否 | 修改时传入的api Id |
groupId | body | String | 是 | 分组ID |
path | body | String | 否 | 路径 |
fullPath | body | String | 否 | 完整路径 |
requestMethod | body | String | 否 | 方法支持列表 |
options | body | String | 否 | API选项 |
type | body | String | 否 | API模式,CODE/QL,分别为代码模式,或QL模式 |
name | body | String | 否 | 名称 |
datasource | body | String | 否 | 数据源 |
script | body | String | 否 | SQL模式下的执行脚本 |
service | body | String | 否 | 服务 |
authenticationMode | body | String | 是 | 认证方式(0-免鉴权 1-IAM认证 2-APP认证) |
requestProtocol | body | String | 是 | 请求协议(0-HTTP 1-HTTPS) |
isSupportedCors | body | String | 是 | 支持跨区域(CORS)(0-开启 1-关闭) |
backendTimeout | body | String | 是 | 后端超时 |
params | body | JSONArray | 否 | 请求参数集合 |
paramName | body | String | 否 | 请求参数名称 |
paramPosition | body | Char | 否 | 请求参数位置 |
paramType | body | Char | 否 | 请求参数类型 |
isRequired | body | Char | 否 | 是否必填 |
backendParamNameMapping | body | String | 否 | 后端参数名称 |
backendParamPositionMapping | body | Char | 否 | 后端参数位置 |
defaultValue | body | String | 否 | 请求参数默认值 |
paramDescription | body | String | 否 | 请求参数描述 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | Object | 是 | api对象 |
示例
请求示例
URL
/function/v1/api-info
{
}
响应示例
删除函数api
删除一条函数api
URI
POST/gate/fc/ichip-function/v1/api-info/action/delete
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | id |
directoryId | body | String | 否 | 所属目录 |
path | body | String | 否 | 路径 |
fullPath | body | String | 否 | 完整路径 |
method | body | String | 否 | 方法支持列表 |
options | body | String | 否 | API选项 |
type | body | String | 否 | API模式,CODE/QL,分别为代码模式,或QL模式 |
name | body | String | 否 | 名称 |
datasource | body | String | 否 | 数据源 |
script | body | String | 否 | SQL模式下的执行脚本 |
service | body | String | 否 | 服务 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/function/v1/api-info/action/delete
{
}
响应示例
脚本执行
删除一条函数api
URI
POST /gate/fc/ichip-function/v1/api-info/action/run
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
debug | body | boolean | 是 | 是否是调试模式 |
pattern | body | String | 是 | path |
url | body | String | 是 | fullPath |
header | body | Map | 是 | |
body | body | Object | 是 | |
script | body | String | 是 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/gate/fc/function/v1/api-info/action/run
{
}
响应示例
模拟参数保存
模拟参数保存
URI
POST /gate/fc/ichip-function/v1/api-example
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
apiInfoId | body | String | 是 | |
url | body | String | 是 | |
method | body | String | 是 | |
requestHeader | body | String | 是 | |
requestBody | body | Map | 是 | |
responseHeader | body | Object | 是 | |
responseBody | body | String | 是 | |
options | body | String | 是 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
示例
请求示例
URL
/gate/fc/function/v1/api-info/v1/api-example
{
}
响应示例
向远程服务进行同步
向远程服务进行同步
URI
POST /gate/fc/ichip-function/v1/remote-sync
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
remoteUrl | body | String | 是 | |
increment | body | integer | 是 | 0:全量,1:增量 |
secretKey | body | String | 是 | |
apiInfoIds | body | String | 否 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
删除模拟参数
删除模拟参数
URI
POST /gate/fc/ichip-function/v1/api-example/action/delete
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
ApiExampleList | body | String | 是 | 对象(十-6请求参数)列表 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
目录查询
目录查询
URI
GET/gate/fc/ichip-function/v1/directory/list
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
目录保存
目录保存
URI
POST /gate/fc/ichip-function/v1/directory
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
service | body | String | 是 | |
name | body | String | 是 | |
path | body | String | 是 | |
parentId | body | String | 是 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
11.目录删除
目录删除
URI
POST /gate/fc/ichip-function/v1/directory/action/delete
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
service | body | String | 是 | |
name | body | String | 是 | |
path | body | String | 是 | |
parentId | body | String | 是 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
自动完成,类型获取
自动完成,类型获取
URI
GET/gate/fc/ichip-function/v1/directory/completion-items
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
接收远程同步的API信息
接收远程同步的API信息
URI
GET /gate/fc/ichip-function/v1/accept-sync
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
increment | body | int | 是 | 0:全量,1:增量 |
sign | body | String | 是 | |
apiInfos | body | List |
是 | |
directories | body | List |
是 |
返回参数
分页查询函数api列表
分页查询api列表
URI
GET /gate/fc/ichip-function/v1/api-page?pageNo={pageNo}&pageSize={paeSize}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
pageNo | query | int | 是 | 页数 |
paeSize | query | int | 是 | 每页api条数 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
data | body | list | 是 | api分页对象列表 |
示例
请求示例
URL
/gate/fc/ichip-function/v1/api-page?pageNo=1&pageSize=2
响应示例
{
"code": "200",
"message": "ok",
"data": {
"code": 1,
"pageNo": 1,
"pageSize": 2,
"totalCount": 10,
"pages": 1,
"data": [
{
"id": "60eece6bf1b39c312c6688a1",
"path": "/compare",
"fullPath": "/compare",
"method": "POST",
"options": "{}",
"type": "Ql",
"name": "公司名称比较",
"datasource": "mysql",
"script": "Utils.loadAPI(\"POST:/fapiao\")\nUtils.loadAPI(\"POST:/yinzhang\")\n\nString fapiao = fp(body.imageFP)\nString yinzhang = yz(body.imageYZ)\nlog.info(fapiao);\nlog.info(yinzhang);\nif(fapiao.equals(yinzhang)){\n return true;\n}else{\n return false;\n}",
"service": "ichip-function",
"directoryId": "60e5002c87c83a09b7a7ee3d",
"editor": "admin",
"createTime": "2021-07-14 19:45:47",
"updateTime": "2021-07-14 19:59:59"
},
{
"id": "60ed774a59a11c6a5fc77ec0",
"path": "/fapiao",
"fullPath": "/fapiao",
"method": "POST",
"options": "{}",
"type": "Ql",
"name": "发票识别",
"datasource": "mysql",
"script": "import groovy.json.JsonBuilder;\nimport com.alibaba.fastjson.JSONObject;\nimport com.alibaba.fastjson.JSONArray\n\ndef fp(image){\n appKey = \"6p6Xs1RFCOo=\"\n JSONObject reqBody = new JSONObject();\n JSONObject header = new JSONObject();\n JSONObject params = new JSONObject();\n Utils.loadAPI(\"GET:/getSign\");\n Utils.loadAPI(\"GET:/getAuthDate\");\n authDate = getAuthDate();\n sign = getSign(authDate);\n reqBody.put(\"image\",image);\n reqBody.put(\"app_key\", appKey);\n reqBody.put(\"auth_sign\", sign);\n reqBody.put(\"auth_time\", authDate);\n header.put(\"Content-Type\", \"application/json\");\n params.put(\"header\", header);\n params.put(\"body\", reqBody);\n JSONObject obj = http.request(\"http://10.221.16.89:9999/ocr/template/v1/recognize\",\"POST\",params)\n JSONArray array = obj.getJSONArray(\"content\");\n String resName = \"\";\n if(array!=null&&array.size()>0){\n for(int i=0; i< array.size(); i++){\n JSONObject json = array.getJSONObject(i);\n if(\"销售方名称\".equals(json.getString(\"name\"))){\n resName = json.getString(\"value\");\n return resName\n }\n } \n }\n return resName;\n}\n\n",
"service": "ichip-function",
"directoryId": "60e5002c87c83a09b7a7ee3d",
"editor": "admin",
"createTime": "2021-07-13 19:21:46",
"updateTime": "2021-07-14 19:53:18"
}
]
},
"status": 200,
"requestId": ""
}
发布 api
POST /gate/fc/ichip-function/v1/api/{id}/action/release
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | path | String | 是 | apiID |
description | body | String | 是 | api描述 |
publishEnvironment | body | String | 是 | 发布环境(0-未发布 1-线上发布 2-测试发布 3-线上测试均发布) |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
code | body | String | 是 | 状态码 |
message | body | String | 是 | 返回信息 |
requestId | body | UUID | 是 | 本次请求ID |
示例
请求示例
URL
/gate/fc/ichip-function/v1/api/usidhcidusa324vgt/action/release
{
"description": "发布 api 的描述",
"publishEnvironment":"1"
响应示例
{
"code": "200",
"message": "发布 API 成功",
"requestId": "042d077f-1f3d-4a6a-b4de-8055a7457d80"
}
错误码
以下为本接口特有的错误码。
错误代码 | 错误信息 | Http状态码 | 说明 |
---|---|---|---|
703.002001 | 创建API实例失败 | 500 | 无 |
703.003001 | 创建kong实例失败 | 500 | 无 |
用户信息
保存登录用户信息
目录保存
URI
GET /gate/ig/user/v1/info
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|