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

请求参数

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

返回参数

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