1. 程式人生 > >教師端API——左天衡

教師端API——左天衡

str ... eat ber -s 否則 針對 邏輯 導論

//獲取全部課程 /teacher/course/get-all-courses GET

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 GET

Request {

"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——左天衡