# QUIZ - 测试 > url 前缀:**quiz** > > 示例:**https://xxxxxxxxx/api/quiz** ## 获得测试列表 `TEACHER`, `STUDENT` ```http get / ``` ### Parameters | Name | Type | Description | | --------- | --------- | -------------------------- | | slideId | string | slide id | | subscribe | boolean | 学生订阅(学生相关)的测试 | | state | QuizState | 测试状态 | | size | number | 页面展示条数 | | page | number | 当前页码 | | sort | string? | 排序方式 | ### Response ```ts interface ResponseData { quizs: QuizBasicSerialzer[]; page: PageSerializer; } ``` see [QuizBasicSerialzer](../serializer/QuizSerializer.md), [PageSerializer](../serializer/PageSerializer.md) ## 获得某一测试的详细内容 `TEACHER`, `STUDENT` ```http get /:quizId ``` ### Response ```ts QuizSerializer; ``` see [QuizSerializer](../serializer/QuizSerializer.md) ## 创建测试 `TEACHER` ```http post / ``` ### Parameter ```ts interface QuizDTO { name: string; // 测试名 quizTime: SlideState; // 测试时间 slideId: number; // 幻灯片 id questions: number[]; // 题目 id; } ``` ### Response ```ts QuizSerializer; ``` see [QuizSerializer](../serializer/QuizSerializer.md) ## 修改测试 (仅限未开始时可以修改) `TEACHER` ```http put /:quizId ``` ### Parameter ```ts interface QuizUpdateDTO { id: number; name: string; // 测试名 quizTime: SlideState; // 测试时间 slideId: number; // 幻灯片 id questions: number[]; // 题目 id; } ``` ### Response ```ts QuizSerializer; ``` see [QuizSerializer](../serializer/QuizSerializer.md) ### 删除测试 (仅限未开始时可以删除) `TEACHER` ```http delete /:quizId ``` ### Response ```ts { } ``` ## 提交答案 `STUDENT` ```http put /:quizId/student-answer ``` ### Parameter ```ts interface AnswerDTO { answers: QuestionWithStudentAnswerSerializer[]; } ``` ### Response ```ts { } ``` ## 获得测试结果统计 `TEACHER` ```http get /:quizId/result ``` ### Parameter ```ts interface Result { avarage: number; // 平均值 } ```