教師端API——左天衡
Request {
"page": 1
}
Response {
"total_pages": 20,
"current_page": 1,
"courses": [
//上次更新:已經棄置,並不再可用
{
"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
}
Response {
"total_pages": 10,
"current_page": 1,
"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/lecture/get-my-lectures GET
Request {
"page": 1,
"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,
"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,
"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,
"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 GETRequest {
"page": 1,
"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,
"problem_id" : 1
}
Response{
"total_pages": 10,
"current_page": 1,
"submissions":[
//查重率:已經棄置,並不再可用
{
"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,
"lab_id" : 1
}
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.*; \n public class Main{ \n 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,
}
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" : ""
}
//查看一定時間段的所有題目提交 /teacher/submission/get-all-submissions POST
Request {
"page": 1,
//為空表示最早時間
"begin_time":2007-06-17 15:00,
//為空表示最晚時間
"end_time":2007-06-17 15:00
}
Response{
"total_pages": 10,
"current_page": 1,
"submissions": [
{
"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" : 1,
"student_number" : "1612000",
"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" : "[email protected]",
"gender_id" : 0,
}
//修改自己的個人信息
/teacher/information/edit-information POST
Request {
"teacher_id" : 1,
"password" : "*******",
"name" : "張三",
"email" : "[email protected]",
"gender_id" : 0,
}
Response {
//在編輯成功時返回200,否則返回具體錯誤code並且更新error_msg
"error_msg" : ""
}
教師端API——左天衡