开发者文档

项目进度与待办

GET/api/orgs/:orgId/project-management

权限与前置条件

当前有效工作区成员;工作区及账号必须有效。

此接口仅支持浏览器登录,不接受 API Key。Cookie 写入仍需允许来源的 Origin 和 X-Requested-With: suren360。不能同时携带 Cookie 与 API Key。所有路径参数须使用真实 ID。

请求参数

orgId · 路径参数 · 必填字符串

Query 查询参数

字段类型必填约束
pageinteger否{"default":1,"minimum":1,"maximum":9007199254740991}
pageSizeinteger否{"default":20,"minimum":1,"maximum":100}
qstring否{"default":"","maxLength":100}
projectIdstring否{"minLength":1,"maxLength":32}
issueKindstring否{"enum":["overdue","review","rework","fee"]}
issuePageinteger否{"default":1,"minimum":1,"maximum":1000000}
查看完整请求 JSON Schema
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "page": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "q": {
      "default": "",
      "type": "string",
      "maxLength": 100
    },
    "projectId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 32
    },
    "issueKind": {
      "type": "string",
      "enum": [
        "overdue",
        "review",
        "rework",
        "fee"
      ]
    },
    "issuePage": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 1000000
    }
  }
}

调用示例

先通过浏览器统一登录,使用受控环境中的已有会话。 请替换部署地址与示例字段,不要将凭证粘贴到聊天或日志中。

cURL · 示例占位值需替换
curl --request GET \
  'https://YOUR_DEPLOYMENT_HOST/api/orgs/YOUR_orgId/project-management' \
  --cookie "$SUREN360_COOKIE"

响应结构

成功返回 HTTP 200 的 JSON 对象。下方为响应结构定义,不是虚构的业务数据。

字段类型必填约束
projectsobject是{"required":["total","page","pageSize","items"],"additionalProperties":false}
issuesobject是{"required":["total","page","pageSize","counts","items"],"additionalProperties":false}
查看完整响应 JSON Schema
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "projects": {
      "type": "object",
      "properties": {
        "total": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "page": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "pageSize": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 32
              },
              "name": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "responsibleName": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "endsOn": {
                "type": "string",
                "format": "date",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
              },
              "daysRemaining": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "plannedTasks": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "completedTasks": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "recoveredCount": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "approvedCount": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "pendingReviewCount": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "reworkCount": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "pendingFeeCount": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "overdueCount": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "confirmedFeeFen": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "budgetFen": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "id",
              "name",
              "status",
              "responsibleName",
              "endsOn",
              "daysRemaining",
              "plannedTasks",
              "completedTasks",
              "recoveredCount",
              "approvedCount",
              "pendingReviewCount",
              "reworkCount",
              "pendingFeeCount",
              "overdueCount",
              "confirmedFeeFen",
              "budgetFen"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "total",
        "page",
        "pageSize",
        "items"
      ],
      "additionalProperties": false
    },
    "issues": {
      "type": "object",
      "properties": {
        "total": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "page": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "pageSize": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "counts": {
          "type": "object",
          "properties": {
            "overdue": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "review": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "rework": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "fee": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "overdue",
            "review",
            "rework",
            "fee"
          ],
          "additionalProperties": false
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 32
              },
              "kind": {
                "type": "string",
                "enum": [
                  "overdue",
                  "review",
                  "rework",
                  "fee"
                ]
              },
              "projectId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 32
              },
              "projectName": {
                "type": "string"
              },
              "responsibleName": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "title": {
                "type": "string"
              },
              "creatorName": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "occurredAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "targetId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 32
              }
            },
            "required": [
              "id",
              "kind",
              "projectId",
              "projectName",
              "responsibleName",
              "title",
              "creatorName",
              "occurredAt",
              "targetId"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "total",
        "page",
        "pageSize",
        "counts",
        "items"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "projects",
    "issues"
  ],
  "additionalProperties": false
}
查看错误码与重试规则