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列表

ICHIP-API接口文档(2)二.7

绑定API

ICHIP-API接口文档(2)二.8

9.解绑API

ICHIP-API接口文档(2)二.9

分组管理

新建分组

给当前用户新建一个 api 分组

URI

POST /apigroup

请求参数

名称 位置 类型 是否必须 描述
name body String 是 从前台获取的分组名称
description body String 否 从前台获取的分组描述
categoryId body String 否 所属分类id()
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 否 分组描述
categoryId body String 否 从前台获取的所属分类id

返回参数

名称 位置 类型 是否必须 描述
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
options body String 是
header body Map 是
body body Object 是
datasource body String 是
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

请求参数

名称 位置 类型 是否必须 描述

返回参数

名称 位置 类型 是否必须 描述