zoukankan      html  css  js  c++  java
  • 教师端API——左天衡

    //Deprecated Warning: 本Api只关注xiaopiu上的前端代码是否可以实现
    //如果可以则实现它,而不考虑其是否是高效率的,方便的甚至是有意义的
    //因此大部分时候你都可以更改你认为可以的业务逻辑(前端页面),并更改
    //本Api中你认为需要更改的部分。

    //Help Yourself!
    //(C) CopyRight 1992-2004 All Rights Reserved.

    //获取全部课程(需要分页、按照名称查找,按照开课教师查找)
    /teacher/course/get-all-courses GET
    Request {
        "page": 1,
        "page_length": 10,  //每页显示最大个数
        "course_name": "",
        "teacher_name": ""
    }
    Response {
        "total_pages": 20,
        "current_page": 1,
        "courses": [
            //由于某些原因,前端页面中的“上次更新”将被废弃并不再可用,这可能是由配置的更改所造成的
            //错误0x0A:数据库中没有必需的字段信息,无法实现该操作
            {
                "course_id" : 1,
                "name" : "数据结构",
                "teacher" : "张三",
                "start_time" : 2003-05-17,
                "end_time" : 2003-08-17,
                "description" : "本课程针对大二学生开设,主要介绍...",
            },{
                "course_id" : 2,
                "name" : "Java程序设计",
                "teacher" : "李四",
                "start_time" : 2003-05-17,
                "end_time" : 2003-08-17,
                "description" : "本课程针对大一学生开设,主要介绍...",
        }]
    }

    //获取我的课程(需要分页、按照名称查找,按照开课教师查找)
    /teacher/course/get-my-courses GET
    Request {
        "page": 1,
        "page_length": 10,  //每页显示最大个数
        "course_name": "",
        "teacher_name": ""
    }
    Response {
        "total_pages": 10,
        "current_page": 1,
        "courses":[
            //由于某些原因,前端页面中的“上次更新”将被废弃并不再可用,这可能是由配置的更改所造成的
            //错误0x0A:数据库中没有必需的字段信息,无法实现该操作
            {
                "course_id" : 1,
                "name" : "数据结构",
                "teacher" : "张三",
                "start_time" : 2003-05-17 12:00,
                "end_time" : 2003-08-17 12:00,
                "description" : "本课程针对大二学生开设,主要介绍...",
            },{
                "course_id" : 2,
                "name" : "算法导论",
                "teacher" : "张三",
                "start_time" : 2003-05-17 12:00,
                "end_time" : 2003-08-17 12:00,
                "description" : "本课程针对大二学生开设,主要介绍...",
        }]
    }

    //获取我的当前课程(不需要分页)即现在时间介于该课程开始时间和结束时间之间的课程
    /teacher/course/get-my-current-courses GET
    Request {

    }
    Response {
        "courses":[
            {
                "course_id" : 1,
                "name" : "数据结构",
                "teacher" : "张三",
                "start_time" : 2003-05-17 12:00,
                "end_time" : 2003-08-17 12:00,
                "description" : "本课程针对大二学生开设,主要介绍...",
            },{
                "course_id" : 2,
                "name" : "算法导论",
                "teacher" : "张三",
                "start_time" : 2003-05-17 12:00,
                "end_time" : 2003-08-17 12:00,
                "description" : "本课程针对大二学生开设,主要介绍...",
        }]
    }

    //手动增加一门课程
    /teacher/course/add-course POST
    Request {
        "name" : "数据结构",
        "teacher" : "张三",
        "start_time" : 2003-05-17 12:00,
        "end_time" : 2003-08-17 12:00,
        "description" : "本课程针对大二学生开设,主要介绍...",
    }
    Response {
        //在新建成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : "",
        
        //如果发生错误则不存在以下内容,因此前端应该先执行检查
        //事实上,前端在获取到任何后端数据时都应先检查是否为200
        "course_id" : 14,
    }

    //编辑一门课程
    /teacher/course/edit-course POST
    Request {
        "course_id" : 14,
        "name" : "数据结构",
        "teacher" : "张三",
        "start_time" : 2003-05-17 12:00,
        "end_time" : 2003-08-17 12:00,
        "description" : "本课程针对大二学生开设,主要介绍...",
    }
    Response {
        //在编辑成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : "",
    }

    //复制一门课程
    /teacher/course/duplicate-course POST
    Request {
        "course_id" : 14,
    }
    Response {
        //在复制成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : "",
        
        //如果发生错误则不存在以下内容,因此前端应该先执行检查
        //事实上,前端在获取到任何后端数据时都应先检查是否为200
        "course_id" : 15,   
    }

    //删除一门课程
    /teacher/course/delete-course POST
    Request {
        "course_id" : 14,
    }
    Response {
        //在删除成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : "",
    }

    //获取我的某个课程的所有课时(需要分页,按照名称查找)
    /teacher/lecture/get-my-lectures GET
    Request {
        "page": 1,
        "page_length": 10,  //每页显示最大个数
        "lecture_name": "",
        "course_id" : 1,
    }
    Response{
        "total_pages": 10,
        "current_page": 1,
        "lectures":[
            {
                "lecture_id" : 1,
                "name" : "lecture1"
            },{
                "lecture_id" : 2,
                "name" : "lecture2"
            }]
    }

    //获取我的某个课程的所有实验(需要分页,按照名称查找)
    /teacher/lab/get-my-labs GET
    Request {
        "page": 1,
        "page_length": 10,  //每页显示最大个数
        "lab_name": "",
        "course_id" : 1,
    }
    Response{
        "total_pages": 10,
        "current_page": 1,
        "labs":[
            {
                "lab_id" : 1,
                "name" : "二叉搜索树"
            },{
                "lab_id" : 2,
                "name" : "B树和B+树"
            }]
    }

    //获取我的某个课程的所有考试(需要分页,按照名称查找)
    /teacher/exam/get-my-exams GET
    Request {
        "page": 1,
        "page_length": 10,  //每页显示最大个数
        "exam_name": "",
        "course_id" : 1,
    }
    Response{
        "total_pages": 1,
        "current_page": 1,
        "exams":[
            {
                "exam_id" : 1,
                "name" : "期中考试",
                "start_time" : 2003-08-15 12:00,
                "end_time": 2003-08-15 15:00,
                "description": "请遵守考试纪律"
            },{
                "exam_id" : 2,
                "name" : "期末考试"
                "start_time" : 2003-09-15 12:00,
                "end_time": 2003-09-15 15:00,
                "description": "请遵守考试纪律"
            }]
    }

    //获取我的某个课程的所有学生(需要分页,按照学号查找,按照姓名查找)
    /teacher/course/get-my-students GET
    Request {
        "page": 1,
        "page_length": 10,  //每页显示最大个数
        "student_number": "1612",
        "student_name": "",
        "course_id" : 1,
    }
    Response{
        "total_pages": 10,
        "current_page": 1,
        "students":[
            {
                "student_id" : 1,
                "student_number" : "1612000",
                "student_name" : "王五"
            },{
                "student_id" : 2,
                "student_number" : "1612000",
                "student_name" : "赵六"
            }]
    }

    //删除学生
    /teacher/course/delete-my-student POST
    Request {
        "student_id": 1
    }
    Response{
        //在删除成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
    }

    //新建课时
    /teacher/lecture/create-lecture POST
    Request {
        "course_id" : 1,
        "name" : "二叉树的搜索",
        "description" : "主要介绍二叉树的递归和非递归搜索方式。"
    }
    Response{
        //在新建成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
        
        //如果发生错误则不存在以下内容,因此前端应该先执行检查
        //事实上,前端在获取到任何后端数据时都应先检查是否为200
        "lecture_id" : 10
    }

    //编辑课时
    /teacher/lecture/edit-lecture POST
    Request {
        "lecture_id" : 1,
        "name" : "二叉树的先序遍历搜索",
        "description" : "主要介绍二叉树的先序遍历搜索方式。"
    }
    Response{
        //在编辑成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
    }

    //获取某个课时的信息
    /teacher/lecture/get-lecture GET
    Request {
        "lecture_id" : 1,   
    }
    Response{
        "name" : "二叉树的先序遍历搜索",
        "description" : "主要介绍二叉树的先序遍历搜索方式。"
    }

    //获取某个课时的练习题
    /teacher/lecture/get-problems GET
    Request {
        "lecture_id" : 1,   
    }
    Response{
        "problems":[
            {
                "problem_id" : 1,
                "problem_name" : "猴子吃桃问题",
            },{
                "problem_id" : 2,
                "problem_name" : "A + B问题",
            }]
    }

    //修改某个课时的练习题
    //如果原先没有练习题 则可以理解为新建某个课时的练习题
    /teacher/lecture/edit-problems POST
    Request {
        "lecture_id" : 1,
        "problem_ids":[
            {
                "problem_id" : 1
            }, {
                "problem_id" : 3
            }]
    }
    Response{
        //在编辑成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
    }


    //添加某个课时的课件
    /teacher/lecture/add-file POST(FILE)
    Request {
        "lecture_id" : 1,
        "filename" : "二叉树先序遍历课件.pptx",
        "file": [文件信息]########[文件信息]
    }
    Response{
        //在添加成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
    }

    //删除某个课时的课件
    /teacher/lecture/delete-file POST
    Request {
        "lecture_id" : 1,
        "filename" : "二叉树先序遍历课件.pptx"
    }
    Response{
        //在删除成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
    }

    //获取某个课时的全部题目的提交统计(需要分页)
    /teacher/lecture/get-all-problems-submissions GET
    Request {
        "page": 1,
        "page_length": 10,  //每页显示最大个数
        "lecture_id" : 1
    }
    Response {
        "total_pages": 10,
        "current_page": 1,
        "submissions":[
            {
                "problem_id" : 1,
                "problem_name" : "猴子吃桃问题",
                //可根据业务逻辑调整
                "submissions_count" : 100,
                "TLEsubmissions_count" : 50,
                "WAsubmissions_count": 30,
                "ACsubmissions_count": 20
            },{
                "problem_id" : 1,
                "problem_name" : "A + B问题",
                //可根据业务逻辑调整
                "submissions_count" : 100,
                "TLEsubmissions_count" : 0,
                "WAsubmissions_count": 10,
                "ACsubmissions_count": 90
        }]
    }

    //获取某个题目的所有提交(需要分页,按照学号查找,按照状态查找)
    /teacher/problem/get-all-submissions GET
    Request {
        "page": 1,
        "page_length": 10,  //每页显示最大个数
        "student_number": "1612",
        "status": NULL,
        "problem_id" : 1,
    }
    Response{
        "total_pages": 10,
        "current_page": 1,
        "submissions":[
            //由于某些原因,前端页面中的“查重率”将被废弃并不再可用,这可能是由配置的更改所造成的
            //错误0x0A:数据库中没有必需的字段信息,无法实现该操作

            //由于某些原因:前端页面中的“按照状态查找”已被替换为以下枚举类型: ALL_Passed NOT_ALL_Passed NULL
            //错误0x0C:无法对多个变量定义统一的代表属性
            {
                "submission_id" : 1,
                "problem_id" : 1,
                "student_id" : 1,
                "student_number" : "1612000",
                "created_time" : 2003-08-17 15:00,
                "succeed_cases_count" : 3,
                "all_cases_count" : 5,
                "language_id": 1,
            },{
                "submission_id" : 2,
                "problem_id" : 1,
                "student_id" : 3,
                "student_number" : "1612001",
                "created_time" : 2003-08-17 16:20,
                "succeed_cases_count" : 5,
                "all_cases_count" : 5
                "language_id": 2,
            }]
    }

    //新建实验
    /teacher/lab/create-lab POST
    Request {
        "course_id" : 1,
        "name" : "二叉树的搜索",
        "description" : "实验练习二叉树的搜索。",
        "start_time" : 2007-06-15,
        "end_time" : 2007-06-26,
        "report_required" : false
    }
    Response{
        //在新建成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
        
        //如果发生错误则不存在以下内容,因此前端应该先执行检查
        //事实上,前端在获取到任何后端数据时都应先检查是否为200
        "lab_id" : 10
    }

    //编辑实验
    /teacher/lab/edit-lab POST
    Request {
        "lab_id" : 1,
        "name" : "二叉树的先序遍历搜索",
        "description" : "实验练习二叉树的先序遍历搜索。",
        "start_time" : 2007-06-25,
        "end_time" : 2007-06-30,
        "report_required" : true
    }
    Response{
        //在编辑成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
    }

    //获取某个实验的信息
    /teacher/lab/get-lab GET
    Request {
        "lab_id" : 1,   
    }
    Response{
        "name" : "二叉树的先序遍历搜索",
        "description" : "主要介绍二叉树的先序遍历搜索方式。"
        "start_time" : 2007-06-25,
        "end_time" : 2007-06-30,
        "report_required" : true
    }

    //获取某个实验的作业题
    /teacher/lab/get-problems GET
    Request {
        "lab_id" : 1,   
    }
    Response{
        "problems":[
            {
                "problem_id" : 1,
                "problem_name" : "猴子吃桃问题",
            },{
                "problem_id" : 2,
                "problem_name" : "A + B问题",
            }]
    }

    //修改某个实验的练习题
    //如果原先没有练习题 则可以理解为新建某个实验的练习题
    /teacher/lab/edit-problems POST
    Request {
        "lab_id" : 1,
        "problem_ids":[
            {
                "problem_id" : 1
            }, {
                "problem_id" : 3
            }]
    }
    Response{
        //在编辑成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
    }


    //添加某个实验的课件
    /teacher/lab/add-file POST(FILE)
    Request {
        "lab_id" : 1,
        "filename" : "二叉树先序遍历实验要求.pptx",
        "file": [文件信息]########[文件信息]
    }
    Response{
        //在添加成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
    }

    //删除某个实验的课件
    /teacher/lab/delete-file POST
    Request {
        "lab_id" : 1,
        "filename" : "二叉树先序遍历实验要求.pptx"
    }
    Response{
        //在删除成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
    }

    //获取某次实验的全部提交(需要分页,按照学号查找,按照姓名查找)
    /teacher/lab/get-all-submissions GET
    Request {
        "page": 1,
        "page_length": 10,  //每页显示最大个数
        "lab_id" : 1,
        "student_number" : "",
        "student_name" : ""
    }
    Response{
        "total_pages": 10,
        "current_page": 1,
        "submissions" : [
            {
                "submission_id" : 101,
                "student_id" : 1,
                "attachment_grade" : 90,
                "problem_grade" : 100
            }, {
                "submission_id" : 102,
                "student_id" : 2,
                "attachment_grade" : 60,
                "problem_grade" : 60
            }]
    }

    //获取某次实验提交的具体信息
    /teacher/lab/get-submission GET
    Request {
        "submission_id" : 101
    }
    Response{
        "student_id": 1,
        "student_number" : 1612000,
        "student_name": "赵六",
        "problem_submission_id": 1001,
        "attachments" : [
            {
                "attachment_id" : 10,
                "attachment_name" : "实验报告1612000.pdf",
            }, {
                "attachment_id" : 20,
                "attachment_name" : "实验报告2.pdf",
            }]
    }

    //下载某个实验的某个课件
    /teacher/lab/get-submission-file GET
    Request {
        "attachment_id" : 10
    }
    Response{
        "file": [文件信息]########[文件信息]
    }

    //获取某个题目的一次提交的详细信息
    /teacher/submission/get-submission GET
    Request {
        "submission_id" : 1001
    }
    Response{
        "id_problem" : 1,
        "id_student" : 1,
        "code" : "import java.util.*; public class Main{ public static void main(String []args...",
        "created_at" 2007-08-16,
        "runtime" : 993ms,
        "language_id" : 1,
        "memory" : 1036,
        "IP" : "10.0.0.91",
        "succeed_cases_count" : 5,
        "all_cases_count" : 5
    }

    //获取题库中的所有题目(需要分页,按照课程名查找,按照创建人查找,按照名称查找
    /teacher/problem/get-all-problems GET
    Request {
        "page": 1,
        "page_length": 10,  //每页显示最大个数
        "program_name": "",
        "created_teacher_name" : "",
        "course_name" : ""
    }
    Response{
        "total_pages": 10,
        "current_page": 1,
        "problems": [
            {
                "problem_id" : 1,
                "problem_name" : "猴子吃桃问题",
                "created_teacher_id" : 1,
                "created_time" : 2007-06-13 14:00,
                "submit_count" : 80,
                "accepted_count" : 10
            }, {
                "problem_id" : 2,
                "problem_name" : "A + B问题",
                "created_teacher_id" : 1,
                "created_time" : 2007-06-13 13:00,
                "submit_count" : 100,
                "accepted_count" : 90
            }]
    }

    //获取一个题目的详细信息
    /teacher/problem/get-problem GET
    Request {
        "problem_id": 1,
    }
    Response{
        "problem_name" : "猴子吃桃问题",
        "description": "有m个猴子,n个桃子,请设计一种算法,使得..."
        "created_teacher_id" : 1,
        "created_time" : 2007-06-13 14:00,
        "modified_time" : 2007-06-13 15:00,
        "runtime_limit" : 1024,
        "memory_limit" : 1024,
        "tags":[{
            "tag_id" : 1,
            "tag_name" : "贪心"
            }, {
            "tag_id" : 2,
            "tag_name" : "动态规划"
            }]
        "cases":[{
            "case_id" : 1001,
            "input" : "2, 3, 4",
            "output" : "5"
            "tags":[{
                "tag_id" : 1,
                "tag_name" : "数组越界检查"
                }, {
                "tag_id" : 2,
                "tag_name" : "除零错检查"
                }]
            }, {
            "case_id" : 1002,
            "input" : "2, 3, 0",
            "output" : "0"
            "tags":[{
                "tag_id" : 2,
                "tag_name" : "除零错检查"
                }, {
                "tag_id" : 3,
                "tag_name" : "栈溢出检查"
            }]
        ]
    }

    //新建一道题目
    /teacher/problem/create-problem POST
    Request {
        "problem_name" : "猴子吃桃问题",
        "description": "有m个猴子,n个桃子,请设计一种算法,使得..."
        "created_teacher_id" : 1,
        "runtime_limit" : 1024,
        "memory_limit" : 1024,
        "tags":[{
            "tag_id" : 1,
            "tag_name" : "贪心"
            }, {
            "tag_id" : 2,
            "tag_name" : "动态规划"
            }]
        "cases":[{
            "case_id" : 1001,
            "input" : "2, 3, 4",
            "output" : "5"
            "tags":[{
                "tag_id" : 1,
                "tag_name" : "数组越界检查"
                }, {
                "tag_id" : 2,
                "tag_name" : "除零错检查"
                }]
            }, {
            "case_id" : 1002,
            "input" : "2, 3, 0",
            "output" : "0"
            "tags":[{
                "tag_id" : 2,
                "tag_name" : "除零错检查"
                }, {
                "tag_id" : 3,
                "tag_name" : "栈溢出检查"
            }]
        ]
    }
    Response{
        //在新建成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
        
        //如果发生错误则不存在以下内容,因此前端应该先执行检查
        //事实上,前端在获取到任何后端数据时都应先检查是否为200
        "problem_id" : 3
    }

    //编辑一道题目
    /teacher/problem/edit-problem POST
    Request {
        "problem_id" : 3,
        "problem_name" : "猴子吃桃问题",
        "description": "有m个猴子,n个桃子,请设计一种算法,使得..."
        "created_teacher_id" : 1,
        "runtime_limit" : 1024,
        "memory_limit" : 1024,
        "tags":[{
            "tag_id" : 1,
            "tag_name" : "贪心"
            }, {
            "tag_id" : 2,
            "tag_name" : "动态规划"
            }]
        "cases":[{
            "case_id" : 1001,
            "input" : "2, 3, 4",
            "output" : "5"
            "tags":[{
                "tag_id" : 1,
                "tag_name" : "数组越界检查"
                }, {
                "tag_id" : 2,
                "tag_name" : "除零错检查"
                }]
            }, {
            "case_id" : 1002,
            "input" : "2, 3, 0",
            "output" : "0"
            "tags":[{
                "tag_id" : 2,
                "tag_name" : "除零错检查"
                }, {
                "tag_id" : 3,
                "tag_name" : "栈溢出检查"
            }]
        ]
    }
    Response{
        //在编辑成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
    }

    //查看一定时间段的所有题目提交(需要分页,按开始/结束时间查找,按题目id查找,按学生姓名查找)
    /teacher/submission/get-all-submissions POST
    Request {
        "page": 1,
        "page_length": 10,  //每页显示最大个数
        //为空表示最早时间
        "begin_time":2007-06-17 15:00,
        //为空表示最晚时间
        "end_time":2007-06-17 15:00,
        "program_id": "",
        "student_name": "张三",
    }
    Response{
        "total_pages": 10,
        "current_page": 1,
        "submissions": [
            {
                "submission_id" : 1,
                "problem_id" : 1,
                "student_id" : 1,
                "student_number" : "1612000",
                "student_name": "张三",
                "created_time" : 2003-08-17 15:00,
                "succeed_cases_count" : 3,
                "all_cases_count" : 5,
                "language_id": 1
            }, {
                "submission_id" : 2,
                "problem_id" : 1,
                "student_id" : 1,
                "student_number" : "1612000",
                "student_name": "张三",
                "created_time" : 2003-08-17 16:00,
                "succeed_cases_count" : 5,
                "all_cases_count" : 5,
                "language_id": 1
            }]
    }

    //获取自己的个人信息
    /teacher/information/get-information GET
    Request {
    }
    Response {
        "teacher_id" : 1,
        "name" : "张三",
        "email" : "zhangsan@gmail.com",
        "gender_id" : 0,
    }

    //修改自己的个人信息
    /teacher/information/edit-information POST
    Request {
        "teacher_id" : 1,
        "password" : "*******",
        "name" : "张三",
        "email" : "zhangsan@gmail.com",
        "gender_id" : 0,
    }
    Response {
        //在编辑成功时返回200,否则返回具体错误code并且更新error_msg
        "error_msg" : ""
    }


    //增加一个题目标签
    /teacher/problem/add-tag POST
    Request {
      "tag_name" : "贪心算法"
    }
    Response {
      //在新建成功时返回200,否则返回具体错误code并且更新error_msg
      "error_msg" : "",

      //如果发生错误则不存在以下内容,因此前端应该先执行检查
      //事实上,前端在获取到任何后端数据时都应先检查是否为200
      //典型的错误应该是:该标签已经存在
      "tag_id" : 4,
    }

  • 相关阅读:
    深度排序与alpha混合 【转】
    SVN服务器配置说明 【转】
    3D空间中射线与轴向包围盒AABB的交叉检测算法 【转】
    Linux系统管理员不可不知的命令:sudo
    Linux 系统实时监控的瑞士军刀 —— Glances
    shell定期转移日志文件到云盘并定期删除云盘文件
    zabbix监控第二块网卡是否连通
    Gitlab自动触发Jenkins构建打包
    shell脚本检测网络是否畅通
    Prometheus入门
  • 原文地址:https://www.cnblogs.com/cs-sunday/p/10869122.html
Copyright © 2011-2022 走看看