文档首页> Classroom> API参考> 应用示例> 示例4:下发判题并查询判题结果以及下载结果
更新时间:2023-07-03 GMT+08:00
分享

示例4:下发判题并查询判题结果以及下载结果

场景描述

本章以教育培训机构为例,指导您通过API下发判题任务并查询判题结果以及下载结果文件。

API的调用方法请参见如何调用API

约束限制

租户已经在Console平台购买判题节点,且配置好回调地址和回调秘钥。

涉及接口

先通过租户token下发判题任务,再通过判题任务id查询判题结果,如果有文件或图片生成,可以根据文件或图片id下载,步骤如下:

  1. 下发判题任务。
  2. 根据判题任务id查询判题结果。
  3. 根据文件或图片id进行下载。

操作步骤

  1. 下发判题任务。

    • 接口信息

      URI:GET /v1/enablement/judgements

      API文档详情请参见:下发判题任务

      API Explorer在线调试请参见:下发判题任务

    • 说明
      • 输出类型为文件生成类型时(output_type为fileout),不需要指定生成路径,程序会将标准输出的输出流写入文件并返回文件id。
      • 输出类型为图片生成类型时(output_type为imgout), 需要指定生成路径,并且须生成在目录"/projects/output/"下,程序会返回图片的id。
    • 请求示例
      POST  https://classroom-ext.cn-north-4.myhuaweicloud.com/v1/enablement/judgements
    • 响应示例
      {
      "notify_url": "https://117.12.143.1/taskBack",
      "code_type": "inline",
      "source_code": "aW1wb3J0IG9zCnByaW50KCIyMDIxLTA3LTE0Iik=",
      "description": "java code",
      "runtime_type": "java",
      "timeout": 60,
      "output_type": "sysout"
      }

  1. 根据判题任务id查询判题结果。

    • 接口信息

      URI:GET v1/enablement/judgements/{judgement_id}

      API文档详情请参见:获取判题结果详情

      API Explorer在线调试请参见:获取判题结果详情

    • 请求示例
      GET  https://classroom-ext.cn-north-4.myhuaweicloud.com/v1/enablement/judgements/933b85316de54cea9e650d5f4f6b7ad2
    • 响应示例
      {
          "task_status": "callback_success",
          "status": "compile_error",
          "judgement_id": "933b85316de54cea9e650d5f4f6b7ad2",
          "start_time": "2021-07-15 19:49:22",
          "end_time": "2021-07-15 19:49:28",
          "result": {
              "output": "java sysout",                                  // 下发判题时output_type为sysout或代码出错时只会返回output字段
              "file_id": "b47e7d4e-ae9e-43a2-a452-c2aa6bfb5ee9.txt",    // 下发判题时output_type为fileout只会返回file_id字段
              "image_id": "94737d4e-ae9e-43a2-9702-bda76bfb5ee9.png"    // 下发判题时output_type为imgout只会返回image_id字段
              "testcases": [                                            // 下发判题时output_type为caseout或judgeout只会返回testcases字段
                  {
                      "input": "10 20",
                      "output": "30"
                  }   
              ]
          }
      }

  1. 下载判题结果文件

    • 接口信息

      URI:GET /v1/enablement/judgement/files/{file_id}

      API文档详情请参见:获取判题结果详情

      API Explorer在线调试请参见:下载判题结果文件

    • 请求示例
      GET  https://classroom-ext.cn-north-4.myhuaweicloud.com/v1/enablement/judgement/files/b47e7d4e-ae9e-43a2-a452-c2aa6bfb5ee9.txt
    • 响应示例

    文件流的形式返回。

分享:

    相关文档

    相关产品