POST/api/public/v1/grade-sessions/{id}/submission-previews

grade_submission_previews.create

所需权限
grades:submit
类别
写入
计费
不计费
幂等
不需要
MCP 工具
preview_grade_submission

参数

  • id位置 path必填 是类型 string (uuid)

请求体

{
  "type": "object",
  "properties": {
    "sheets": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "fileId": {
            "type": "string",
            "format": "uuid"
          },
          "memberId": {
            "type": "string",
            "format": "uuid"
          },
          "submissionKey": {
            "type": "string",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,119}$"
          }
        },
        "required": [
          "fileId",
          "memberId",
          "submissionKey"
        ],
        "additionalProperties": false
      }
    },
    "mode": {
      "default": "append",
      "type": "string",
      "const": "append"
    }
  },
  "required": [
    "sheets"
  ],
  "additionalProperties": false
}

成功响应 200

{
  "type": "object",
  "properties": {
    "previewId": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ]
    },
    "expiresAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ]
    },
    "sessionRevision": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "sheets": {
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "fileId": {
            "type": "string",
            "format": "uuid"
          },
          "memberId": {
            "type": "string",
            "format": "uuid"
          },
          "submissionKey": {
            "type": "string",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,119}$"
          }
        },
        "required": [
          "fileId",
          "memberId",
          "submissionKey"
        ],
        "additionalProperties": false
      }
    },
    "conflicts": {
      "maxItems": 300,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "index": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 99
              },
              {
                "type": "null"
              }
            ]
          },
          "reason": {
            "type": "string",
            "enum": [
              "file.not_found",
              "file.not_ready",
              "file.purpose_mismatch",
              "file.already_used",
              "member.not_in_class",
              "member.duplicate",
              "member.already_submitted",
              "key.duplicate",
              "key.already_used",
              "session.capacity"
            ]
          }
        },
        "required": [
          "index",
          "reason"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "previewId",
    "expiresAt",
    "sessionRevision",
    "sheets",
    "conflicts"
  ],
  "additionalProperties": false
}

可能返回的错误状态码

400401403404409429500503

所有错误都用同一种错误信封返回,原因码见错误与限流。

POST /api/public/v1/grade-sessions/{id}/submission-previews · 接口参考