无特殊说明,所有接口具有如下统一约定

  • 请求格式:JSON
  • 响应格式:JSON
  • 响应类型:Object
  • 通用属性(所有接口都具备):

    后端接口标准返回数据格式,

    ```javascript

{ “code”: “200”, //code非200,会被统一拦截报错,弹窗提示取值 message “message”: “错误信息”, // 只有code非200时,前端才会调用这个message “requestId”: “xxx”, // 一般用于定位报错和日志问题用 “data”: { “gmtCreated”: “关联时间”, “relationState”: “关联状态”, “relationType”: “关联类型”, “list”: [] }, // pageInfo不一定需要,但如果有请一定是这几个字段,不能是其他字段名称 “pageInfo”: { “currentPage”: 1, “pageSize”: 10, “total”: 100 } }

  1. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/203859/1608193720659-c9bd7266-1c56-4979-b02b-9f8541dc40bc.png#height=582&id=KccWv&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1164&originWidth=1110&originalType=binary&ratio=1&size=621971&status=done&style=none&width=555)
  2. <a name="vbuLF"></a>
  3. #### 说明
  4. 这样的基本格式是不能动的,这个我们在各个业务的portal端是要统一的;<br />**code为字符串格式,非200,会被统一拦截报错,弹窗提示取值 message;**<br />data部分数据结构请注意,pageInfo返回的字段要统一。列表数据请放list中。
  5. response.code须符合http规范,可能是5个不同的值开头:<br />1xx:信息响应类,表示接收到请求并且继续处理<br />2xx:处理成功响应类,表示动作被成功接收、理解和接受<br />3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理<br />4xx:客户端错误,客户请求包含语法错误或者是不能正确执行<br />5xx:服务端错误,服务器不能正确执行一个正确的请求
  6. <a name="Ov04L"></a>
  7. # 例1. 获取实例列表数据
  8. - 接口路径:/renew/getListAndCount.json
  9. - 请求方法:GET
  10. <a name="6ZtSE"></a>
  11. #### 请求参数
  12. | 参数名 | 类型 | 是否必需 | 说明 |
  13. | --- | --- | --- | --- |
  14. | instanceName | String | | 实例名称,模糊匹配 |
  15. | instanceId | String | | 实例ID,精确匹配,当该参数有值时,忽略instanceName |
  16. | expiresIn | Integer | | 距离过期的天数,当不传时查询全部过期时间 |
  17. | commodityCode | String | | 产品code,当不传时查询全部产品 |
  18. | region | String | | region,当不传时查询全部地域 |
  19. | renewalStatus | String | | 1 |
  20. | pageIndex | Integer | | 当前页码 |
  21. | pageSize | Integer | | 每页数量 |
  22. <a name="E7Kvo"></a>
  23. #### 返回值格式
  24. - DataObject
  25. | 属性 | 类型 | 说明 |
  26. | --- | --- | --- |
  27. | list | Array<RenewItem> | 列表数据(成功时返回的信息) |
  28. | renewalStatusCount | renewalStatus | 按续费类型的聚合数据(tab按钮展示list的数值用) |
  29. - Array<RenewItem> 的结构
  30. | 属性 | 类型 | 说明 |
  31. | --- | --- | --- |
  32. | commodityCode | String | 产品Code |
  33. | commodityName | String | 产品名称(需要支持国际化) |
  34. | instanceId | String | 实例ID |
  35. | instanceName | String | 实例名称 |
  36. | spInstanceName | String | 实例名称(rds的展示用) |
  37. | region | String | 地域code |
  38. | regionName | String | 地域名称(需要支持国际化) |
  39. | internetIp | String | 公网IP |
  40. | intranetIp | String | 内网IP |
  41. | databaseType | String | 数据库类型 |
  42. | saleCycle | String | month 包年包月 week 按周** |
  43. | spec | String | 产品规格 |
  44. | renewPeriod | String | 续费周期 |
  45. | renewalDuration | int | 续费时长 ** |
  46. | renewalCycUnit | int | 自动续费周期 ** |
  47. | validTime | Long | 开始时间(unix时间戳,单位毫秒) |
  48. | expireTime | Long | 到期时间(unix时间戳,单位毫秒) |
  49. | expireProcess | String | 到期处理方式 |
  50. - renewalStatusCount的结构
  51. | 属性 | 类型 | 说明 |
  52. | --- | --- | --- |
  53. | normal | Integer | 手动续费的实例数 |
  54. | auto_renewal | Integer | 自动续费的实例数 |
  55. | not_renewal | Integer | 到期不续费的实例数 |
  56. 1 renewalStatus; 续费状态标识(可选) "normal - 手动 auto_renewal -- 自动续费 not_renewal -- 不续费"

{ “successResponse”: true, “code”: “200”, “requestId”: “daec5c97-9acb-480a-bae8-a6646814d654”, “data”: { “list”: [ { commodityCode: ‘vm’, commodityName: ‘云服务器ECS1 地域不同22’, instanceId: ‘i-m5e0vs1fc9lb4tjq8c1j1’, instanceName: ‘iZm5e0vs1fc9lb4tjq8c1jZ1’, region: ‘cn-qingdao’, regionName: ‘qingdao’, internetIp: ‘118.190.209.23’, intranetIp: ‘172.31.134.169’, databaseType: ‘’, saleCycle: ‘week’, spec: ‘ecs.g5.large’, renewPeriod: ‘1’, orderId: ‘’, validTime: 1547012520000, expireTime: 1589012520000, expireProcess: ‘deleteAfterReserved’ },] }, “renewalStatusCount”: { “not_renewal”:1, “normal”: 0, “auto_renewal”: 0 }, “pageInfo”: { “total”: 0, “pageSize”: 20, “currentPage”: 1 } }

  1. <a name="GBb1j"></a>
  2. # 例2.消费总览接口定义
  3. <a name="tedNz"></a>
  4. #### 接口地址
  5. 1. POST consume/consumeOverview/queryMonthProductConsumeOverview.json
  6. <a name="J0z6R"></a>
  7. #### 接口说明
  8. - 每次只查询一个用户的数据。趋势图也使用这个接口。
  9. <a name="2zbYv"></a>
  10. #### 请求参数说明
  11. | 字段 | 必选 | 类型 | 说明 |
  12. | --- | --- | --- | --- |
  13. | resourceUserId | 是 | Number | 资源所有者账号UID。 |
  14. | startMonth | 是 | Number | 起始月 |
  15. | endMonth | 是 | Number | 结束月 |
  16. | pipCode | 否 | String | 产品线code |
  17. | commodityCode | 否 | String | 规格code,产品明细code |
  18. | chargeType | 否 | String | 付费类型:postpay、prepay;<br />不传查所有 |
  19. <a name="HPY1q"></a>
  20. #### 请求参数

{ “resourceUserId”: 12345, “startMonth”:201803, “endMonth”:201804, “pipCode”: “oss”, “commodityCode”: “oss”, “chargeType”:”postpay” }

  1. <a name="lORid"></a>
  2. #### 返回参数说明
  3. - 非必选字段前端不展示,但是导出时会用到
  4. - 返回结果
  5. | 字段 | 必选 | 类型 | 说明 |
  6. | --- | --- | --- | --- |
  7. | data | 是 | List | |
  8. | month | 是 | String | 账期 |
  9. | resourceUserId | 是 | Long | 资源拥有者阿里云ID |
  10. | chargeType | 是 | String | 付费类型 |
  11. | chargeName | 是 | String | 付费类型名称 |
  12. | pipCode | 是 | String | 产品code |
  13. | pipName | 是 | String | 产品名称 |
  14. | commodityCode | 是 | String | 产品明细Code,同规格code |
  15. | commodityName | 是 | String | 产品明细名称 |
  16. | requireAmount | 是 | BigDecimal | 应付金额 |
  17. | currency | 是 | String | 定价货币符号, CNY/USD |
  18. | settleCurrency | 是 | String | 结算货币符号, CNY/USD |
  19. <a name="o1lyx"></a>
  20. #### 返回数据
  21. - **default**

{ “code”: “200”, “data”: [{ “month”: 201807, “unclearAmount”: 0, “cashPayAmount”: 0, “chargeType”: “后付费”, “pipCode”: “oss”, “pipName”: “对象存储OSS(按量付费)”,
“commodityCode”: “oss”, “commodityName”: “对象存储OSS(按量付费)”, “voucherPayAmount”: 0, “discountAmount”: 0, “requireAmount”: 0, “productCode”: “oss”, “resourceUserId”: 1990699401005016, “resourceUsernId”:”aoe@n.com”, }], “requestId”: “@guid”, “success”: true }

  1. <a name="0e7f91a7"></a>
  2. # 例2.1 获取当前子账号列表
  3. <a name="4haS9"></a>
  4. #### 接口描述
  5. | 地址 | /enterriseRelation/getEnterpriseRelationList.json |
  6. | --- | --- |
  7. | 请求方法 | POST |
  8. | 描述 | 通过主账号查询当前所有的子账号 |
  9. <a name="Fhubn"></a>
  10. #### 请求参数
  11. | 字段 | 必选 | 类型 | 说明 |
  12. | --- | --- | --- | --- |
  13. | targetID | 否 | Long | 子账号id |
  14. | relationTypeCode | 否 | String | 关联类型 |
  15. | userNick | 否 | String | 用户昵称 |
  16. | uyId | 否 | String | 子账号id |
  17. | status | 否 | String | 关联状态 |
  18. | statusList | 否 | List | 状态列表['related', 'released','rejected', 'confirming', 'bmps_approving', 'change_confirming', 'bpms_denied','change_bpms_approving'(变更审批中)] |
  19. | key | 否 | String | 搜索关键字 |
  20. 示例1:

{ “targetID”:”子账号id”, “relationTypeCode”:”关联类型”, “userNick”:”用户昵称”, “uyId”:”子账号云id”, “status”:”关联状态”, “statusList”:”状态列表”, “key”:”搜索关键字” }

  1. <a name="WjPxD"></a>
  2. #### 响应参数
  3. | 字段 | 必选 | 类型 | 说明 |
  4. | --- | --- | --- | --- |
  5. | code | 是 | String | |
  6. | requestId | 是 | String | |
  7. | successResponse | 是 | boolean | |
  8. | pageInfo | 是 | Object | 分页信息(以下接口类似) |
  9. | data | 是 | List | 数据实体(以下接口类似) |
  10. | relationId | 是 | Long | 关联id |
  11. | userId | 是 | String | uid |
  12. | gmtCreated | 是 | String | 关联时间 |
  13. | relationState | 是 | String | 关联状态 |
  14. | relationType | 是 | String | 关联类型 |
  15. | nickName | 是 | String | 昵称 |
  16. | accountType | 是 | String | 账号类型master/child |
  17. | applicationId | 是 | String | |
  18. | roleList | 是 | List | 角色列表[trusteeship] |
  19. 示例:

{ “code”: “200”, “pageInfo”: { “total”: 1, “currentPage”: 1, “pageSize”: 10 }, “data”: [ { “relationId”: “关联id”, “uyyunId”: “用户登录名id”, “userId”: “uid”, “gmtCreated”:”关联时间”, “relationState”:”关联状态”, “relationType”:”关联类型”, “nickName”:”昵称”, “accountType”:”账号类型master/child”, “applicationId”:””, “hasFinanceIdentity”:”是否有信控权限”, “roleList”:”角色列表” “privList”:”权限列表” } ], “requestId”: “9bcc88dc-59e9-a13e-6d8d7f0e2ae7”, “message”: “successful”, “successResponse”: true }

  1. <a name="gtvE6"></a>
  2. # 例3.提交导出任务
  3. <a name="6a1b8300"></a>
  4. ## 3.1 获取验证码图片链接接口
  5. <a name="dadb267d"></a>
  6. #### 接口描述(用户中心统一导出能力前端接入)
  7. | 地址 | /api/captcha/getCaptcha.json |
  8. | --- | --- |
  9. | 请求方法 | POST |
  10. | 描述 | 获取验证码图片链接 |
  11. | 域名 | |
  12. <a name="527466ff"></a>
  13. #### 请求参数
  14. - 无
  15. <a name="aef1f359"></a>
  16. #### 响应参数
  17. | 名称 | 类型 | 含义 |
  18. | --- | --- | --- |
  19. | imgLink | String | 验证码图片链接 |
  20. 示例:
  21. ```json
  22. {
  23. "code": "200",
  24. "data": {
  25. "imgLink": "http://afad.com"
  26. },
  27. "requestId": "9bcc88dc-5998-4fe9-a13e-6d8d7f0e2ae7",
  28. "message": "successful",
  29. "success": true
  30. }

3.2 提交异步导出任务接口

接口描述

地址 /api/export/submitAsyncTask.json
请求方法 POST
描述 提交异步导出任务
域名

请求参数

名称 类型 是否必填 含义
verifyCode String 验证码
fromApp String 来源业务系统
fileType String 导出文件类型。不填,默认csv
tableType String 导出报表类型
bizParamMap Map 导出业务参数,供业务方导出时使用,建议与查询类接口形式一致
  • 说明:
    • fromApp、tableType、bizParam对每个导出场景都不一样,请与具体的业务开发确认。如代金券的导出请和代金券开发确认。
    • bizParam中不需要添加当前用户的ID。用户ID费用中心的统一提交任务接口会自动获取,后台填到任务的属性中。业务后端,在实现导出SPI时以exportParam.userId为准。

示例:

  1. {
  2. "verifyCode": "ABDF",
  3. "fromApp": "ucv2-service-uyId-comcomcom",
  4. "fileType": "csv",
  5. "tableType": "FUND_FLOW",
  6. "bizParamMap": {
  7. "month": 201901,
  8. "commodityCode": "rds"
  9. }
  10. }

响应参数

名称 类型 含义
code String 结果码
data Long 任务ID,提交失败,返回null
message String 结果信息

示例:

  1. {
  2. "code": "200",
  3. "data": 1233,
  4. "requestId": "9bcc88dc-5998-4fe9-a13e-6d8d7f0e2ae7",
  5. "message": "successful",
  6. "success": true
  7. }