面试系统
创建面试
POST /open_api/v1/interviews
请求参数:
参数名 | 参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|---|
user_id | 否 | Integer | 创建人ID | |
candidate_name | 否 | String | 候选人名字 | |
否 | Integer | 面试官链接有效期,单位为小时,默认为14天(已废弃,链接永久有效) | ||
written_pad_id | 否 | Integer | 笔试板ID, written_pad_id/written_pad_uid 可只填一个 | |
written_pad_uid | 否 | String | 笔试板UID, written_pad_id/written_pad_uid 可只填一个 | |
type_id | 否 | Integer | 面试类型(1: 技术面试(默认),2: 非技术面试) | |
interviewers | 否 | Array[] | 面试官信息,最多为5个 | |
uid | 是 | String | 面试官ID | |
name | 是 | String | 面试官名称 | |
phone | 是 | String | 面试官手机号。手机号和邮箱必须填一个 | |
是 | String | 面试官邮箱。手机号和邮箱必须填一个 | ||
resume_link | 否 | String | 简历链接,如需展示第三方iframe简历可传入链接 | |
evaluation_link | 否 | String | 评价链接, 如需展示第三方iframe评价页面可传入链接 | |
redirect_uri | 否 | String | 面试结果后跳转链接, 跳转到第三方平台 |
返回结果(data中的内容):
参数名 | 参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|---|
uid | 是 | String | 面试UID | |
interviewer_url | 是 | String | 面试官面试地址 | |
candidate_url | 是 | String | 候选人面试地址 | |
interviewer_urls | 否 | Array | 候选人面试地址 | |
uid | 否 | String | 面试官ID | |
name | 否 | String | 面试官name | |
interviewer_url | 否 | String | 面试官专属链接 |
例:
{
"errcode": 0,
"errmsg": "成功",
"data": {
"uid": "XABCFK",
"interviewer_url": "https://www.showmebug.com/xxxxxxxx",
"candidate_url": "https://www.showmebug.com/xxxxxxxx",
"interviewer_urls": [
{
"uid": "C111",
"name": "张三",
"interviewer_url": "https://www.showmebug.com/xxxxxxxx"
},
{
"uid": "C112",
"name": "李四",
"interviewer_url": "https://www.showmebug.com/xxxxxxxx"
}
]
}
}
编辑面试
PATCH /open_api/v1/interviews/UID
请求参数:
参数名 | 参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|---|
uid | 是 | Integer | 面试UID | |
否 | Integer | 面试类型(1: 技术面试(默认),2: 非技术面试)(该参数已废弃) | ||
interviewers | 是 | Array[] | 面试官信息,最多为5个 | |
uid | 是 | String | 面试官ID | |
name | 是 | String | 面试官名称 | |
phone | 是 | String | 面试官手机号。手机号和邮箱必须填一个 | |
是 | String | 面试官邮箱。手机号和邮箱必须填一个 | ||
resume_link | 否 | String | 简历链接,如需展示第三方iframe简历可传入链接 | |
evaluation_link | 否 | String | 评价链接, 如需展示第三方iframe评价页面可传入链接 | |
redirect_uri | 否 | String | 面试结果后跳转链接, 跳转到第三方平台 |
返回结果(data中的内容):
参数名 | 参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|---|
uid | 是 | String | 面试UID | |
interviewer_urls | 否 | Array | 候选人面试地址 | |
uid | 否 | String | 面试官ID | |
name | 否 | String | 面试官name | |
interviewer_url | 否 | String | 面试官专属链接 |
例:
{
"errcode": 0,
"errmsg": "成功",
"data": {
"uid": "XABCFK",
"interviewer_urls": [
{
"uid": "C111",
"name": "张三",
"interviewer_url": "https://www.showmebug.com/xxxxxxxx"
},
{
"uid": "C112",
"name": "李四",
"interviewer_url": "https://www.showmebug.com/xxxxxxxx"
}
]
}
}
获取面试结果
GET /open_api/v1/interviews/:uid/result
请求参数:
参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|
uid | 是 | String | 面试UID |
返回结果(data中的内容):
参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|
uid | 是 | String | 面试UID |
rate | 是 | Integer | 平均得分(四舍五入) |
rate_content | 是 | String | 评分详情 |
evaluation | 是 | String | 评语 |
report_url | 是 | String | 报告地址 |
例:
{
"errcode":0,
"errmsg":"请求成功",
"data":{
"uid":"AUYDED",
"rate":3,
"rate_content":[
[
"沟通交流",
"2"
],
[
"编码能力",
"3"
],
[
"工程素养",
"4"
]
],
"evaluation":"满意,建议录用",
"report_url":"https://www.showmebug.com/xxxxxxxx"
}
}
如果面试未结束,则返回
{
"errcode":422,
"errmsg":"面试尚未结束"
}
批量创建面试
POST /open_api/v1/batch_interviews
请求参数:(一次最大支持100条数据)
参数名 | 参数名 | 参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|---|---|
user_id | 否 | Integer | 创建人ID | ||
type_id | 否 | Integer | 面试类型(1: 技术面试(默认),2: 非技术面试) | ||
interviews | 是 | Array[] | 面试列表,最多为100个 | ||
uid | 是 | String | 候选人uid | ||
name | 是 | String | 候选人名字 | ||
interviewers | 否 | Array[] | 面试官信息,最多为5个 | ||
uid | 是 | String | 面试官ID, 用于区分不同面试官 | ||
name | 是 | String | 面试官名称 | ||
phone | 是 | String | 面试官手机号。手机号和邮箱必须填一个 | ||
是 | String | 面试官邮箱。手机号和邮箱必须填一个 | |||
resume_link | 否 | String | 简历链接,如需展示第三方iframe简历可传入链接 | ||
evaluation_link | 否 | String | 评价链接, 如需展示第三方iframe评价页面可传入链接 | ||
redirect_uri | 否 | String | 面试结果后跳转链接, 跳转到第三方平台 |
例:
{
"user_id": 1001,
"interviews": [
{
"uid": "C001",
"name": "李四",
"interviewers": [
{
"uid": "C111",
"name": "王五",
"phone": "13000000000",
"resume_link": "https://www.xxx.com",
"evaluation_link": "https://www.xxx.com",
"redirect_uri": "https://www.xxx.com",
}
]
}
]
}
返回结果(data中的内容):
参数名 | 参数名 | 参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|---|---|
interviews | Array | 面试数组 | |||
uid | 是 | String | 面试UID | ||
interviewer_url | 是 | String | 面试官面试地址 | ||
candidate_url | 是 | String | 候选人面试地址 | ||
candidate_uid | 是 | String | 候选人uid | ||
candidate_name | 是 | String | 候选人名称 | ||
interviewers | 否 | Array[] | 面试官信息,最多为5个 | ||
uid | 是 | String | 面试官ID | ||
name | 是 | String | 面试官名称 | ||
interviewer_url | 是 | String | 面试官专属链接 |
例:
{
"errcode": 0,
"errmsg": "成功",
"data": {
"interviews": [
{
"uid": "XABCFK",
"interviewer_url": "https://www.showmebug.com/xxxxxxxx",
"candidate_url": "https://www.showmebug.com/xxxxxxxx",
"candidate_uid": "C001",
"candidate_name": "李四",
"interviewers": [
{
"uid": "C123",
"name": "张三",
"interviewer_url": "https://www.showmebug.com/xxxxx"
}
]
}
]
}
}
获取面试列表
GET /open_api/v1/interviews
请求参数:
参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|
search | 否 | string | 搜索关键字,笔试板名称 |
creator_id | 否 | Integer | 发卷人ID |
status | 否 | Array | 笔试状态:interview_opened 未开始,interview_started 正在进行,interview_ended 已完成 |
created_time_start | 否 | Datetime | 创建时间,时间段开始时间 |
created_time_end | 否 | Datetime | 创建时间,时间段结束时间 |
ended_time_start | 否 | Datetime | 面试结束时间,时间段开始时间 |
ended_time_end | 否 | Datetime | 面试结束时间,时间段结束时间 |
page | 否 | Integer | 页数 |
per_page | 否 | Integer | 分页大小,默认25,最大50 |
返回结果(data中的内容):
参数名 | 参数类型 | 描述 | ||
---|---|---|---|---|
count | Integer | 面试总数 | ||
interviews | Array | 面试数组 | ||
id | Integer | 面试ID | ||
number | String | 面试唯一编号,uid | ||
name | String | 面试板名称 | ||
status | String | 面试状态 | ||
creator_id | Integer | 创建人ID | ||
creator_name | String | 创建人名称 | ||
rate | Integer | 面试评分,1 ~ 5 星 | ||
pad_duration_time | Integer | 面试时长,单位秒 | ||
interview_evaluation | String | 面试官评价 | ||
created_at | Datetime | 创建时间,格式ISO8601 | ||
interview_started_at | Datetime | 开始时间,格式ISO8601 | ||
interview_ended_at | Datetime | 结束时间,格式ISO8601 |
例:
{
"errcode": 0,
"errmsg": "成功",
"data": {
"count": 2,
"interviews": [
{
"id": 1,
"number": "ABCDEF",
"name": "李某",
"status": "interview_ended",
"creator_id": 1,
"creator_name": "李四",
"rate": 5,
"interview_evaluation": "还不错,可以继续",
"pad_duration_time": 1800,
"created_at": "2020-10-01T16:00:00+08:00",
"interview_started_at": "2020-10-01T17:00:00+08:00",
"interview_ended_at": "2020-10-01T19:00:00+08:00",
},
{
"id": 1,
"number": "ABCDEF",
"name": "李某",
"status": "interview_drafted",
"creator_id": 1,
"creator_name": "李四",
"rate": null,
"interview_evaluation": null,
"pad_duration_time": null,
"created_at": "2020-10-01T16:00:00+08:00",
"interview_started_at": null,
"interview_ended_at": null,
}
]
}
}
删除面试
DELETE /open_api/v1/interviews/:uid
请求参数:
参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|
user_id | 否 | Integer | 操作者ID |
返回结果:
例:
{
"errcode": 0,
"errmsg": "成功"
}
创建排队面试
POST /open_api/v1/interview_rooms
请求参数:
参数名 | 参数名 | 参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|---|---|
rounds | 是 | Array | 轮次信息 | ||
round_number | 是 | Integer | 轮次顺序 | ||
candidates | 是 | Array | 候选人信息 | ||
name | 是 | String | 候选人名称 | ||
是 | String | 候选人邮箱 | |||
phone | 是 | String | 候选人手机号 | ||
start_time | 是 | String | 预约面试时间, 输入格式:2022/12/01 10:00 | ||
job_name | 否 | String | 岗位名称 | ||
interviewers | 是 | Array | 面试官信息 | ||
name | 是 | String | 面试官名称 | ||
是 | String | 面试官邮箱 | |||
phone | 是 | String | 面试官手机号 |
例:
{
rounds: [
{
"round_number": "1",
"candidates": [{
"name": "xxx",
"email": "ss@ss.com",
"phone": "12100000000",
"start_time": "xxx",
"job_name": "xxx"
}],
"interviewers": [{
"name": "xxx",
"email": "ss@ss.com",
"phone": "12100000000"
}]
},
{
"round_number": "2",
"candidates": [{
"name": "xxx",
"email": "ss@ss.com",
"phone": "12100000000",
"start_time": "xxx",
"job_name": "xxx"
}],
"interviewers": [{
"name": "xxx",
"email": "ss@ss.com",
"phone": "12100000000"
}]
}
]
}
返回结果(data中的内容):
参数名 | 参数名 | 参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|---|---|
project_id | 是 | Integer | 叫号面试的项目ID | ||
rounds | 是 | Array | 轮次信息 | ||
round_number | 是 | Integer | 轮次顺序 | ||
candidates | 是 | Array | 候选人信息 | ||
name | 是 | String | 候选人名称 | ||
phone | 是 | String | 候选人电话 | ||
是 | String | 候选人邮箱 | |||
appointment_at | 是 | String | 预约时间 | ||
created_at | 是 | String | 创建时间 | ||
pad_url | 是 | String | 面试链接 | ||
expired_at | 是 | String | 面试链接失效时间 | ||
errmsg | 否 | String | 创建失败时,展示失败原因 | ||
interviewers | 是 | Array | 面试官信息 | ||
name | 是 | String | 面试官名称 | ||
phone | 是 | String | 面试官电话 | ||
是 | String | 面试官邮箱 | |||
created_at | 是 | String | 创建时间 | ||
pad_url | 是 | String | 面试链接 | ||
errmsg | 否 | String | 创建失败时,展示失败原因 |
例 :
{
"errcode": 0,
"errmsg": "成功",
"rounds": [
{
"round_number": "1",
"candidates": [{
"name": "sss",
"email": "aa@aa.com",
"phone": "19000000000",
"appointment_at": "2023/08/30 10:00",
"created_at": "2023/02/27 14:44",
"pad_url": "https://www.showmebug.com/ninterview_rooms/XXXXX",
"expired_at": "2023-03-13 18:00"
}],
"interviewers": [{
"name": "aaa",
"email": "aaa@aa.com",
"phone": "12100000000",
"created_at": "2023/02/27 14:44",
"pad_url": "https://www.showmebug.com/interview_waiting_rooms/XXXXX"
}]
}
]
}
删除排队面试
DELETE /open_api/v1/interview_rooms/:ID
请求参数:
参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|
id | 是 | Integer | 叫号面试的项目ID |
例:
{
"errcode": 0,
"errmsg": "成功"
}
获取面试题目列表
GET /open_api/v1/questions
请求参数:
参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|
search | 否 | string | 搜索关键字,题目标题 |
page | 否 | Integer | 页数 |
per_page | 否 | Integer | 分页大小,默认25,最大50 |
返回结果(data中的内容):
参数名 | 必填 | 参数类型 | 描述 | |
---|---|---|---|---|
count | 是 | Integer | 题目总数 | |
questions | 是 | Array | 题目数组 | |
id | 是 | Integer | 题目ID | |
title | 否 | String | 题目标题备注 | |
language | 是 | String | 编程语言 | |
contents | 是 | String | 题目内容及代码 | |
description | 是 | String | 题目描述备注 | |
creator_id | 否 | Integer | 创建人ID | |
creator_name | 否 | String | 创建人名称 | |
created_at | 是 | String | 创建时间,ISO8601格式 | |
updated_at | 是 | String | 更新时间,ISO8601格式 |
例:
{
"errcode": 0,
"errmsg": "成功",
"data": {
"count": 2,
"questions": [
{
"id": 1,
"title": "测试编程题 - 五",
"creator_id": 1001,
"creator_name": "李四",
"language": "Java",
"contents": "// 冒泡排序:从当前元素起,向后依次比较每一对相邻元素,若逆序则交换\n public class ShowMeBug {}",
"description": "考察冒泡排序",
"created_at": "2020-10-01T16:00:00+08:00",
"updated_at": "2020-10-01T16:00:00+08:00"
},
{
"id": 2,
"title": "测试编程题 - 六",
"creator_id": 1001,
"creator_name": "李四",
"language": "Ruby",
"contents": "# 冒泡排序:从当前元素起,向后依次比较每一对相邻元素,若逆序则交换\n def custom\n\nend",
"description": "考察冒泡排序",
"created_at": "2020-10-01T16:00:00+08:00",
"updated_at": "2020-10-01T16:00:00+08:00"
}
]
}
}
创建面试题目
POST /open_api/v1/questions
请求参数:
参数名 | 必填 | 参数类型 | 描述 |
---|---|---|---|
creator_id | 否 | Integer | 题目创建人、默认为管理员 |
language | 否 | string | 题目语言,默认富文本 |
contents | 是 | string | 题目内容及代码 |
description | 否 | string | 题目描述备注,仅面试官可见 |
title | 否 | string | 题目标题备注 |
返回结果(data中的内容):
参数名 | 参数类型 | 描述 | |
---|---|---|---|
id | 是 | Integer | 题目ID |
title | 否 | String | 题目标题备注 |
language | 是 | String | 编程语言 |
contents | 是 | String | 题目内容及代码 |
description | 是 | String | 题目描述备注 |
creator_id | 否 | Integer | 创建人ID |
creator_name | 否 | String | 创建人名称 |
created_at | 是 | String | 创建时间,ISO8601格式 |
updated_at | 是 | String | 更新时间,ISO8601格式 |
例:
{
"errcode": 0,
"errmsg": "成功",
"data": {
"id": 1,
"title": "测试编程题 - 五",
"creator_id": 1001,
"creator_name": "李四",
"language": "Java",
"contents": "// 冒泡排序:从当前元素起,向后依次比较每一对相邻元素,若逆序则交换\n public class ShowMeBug {}",
"description": "考察冒泡排序",
"created_at": "2020-10-01T16:00:00+08:00",
"updated_at": "2020-10-01T16:00:00+08:00"
}
}
批量创建面试题目
POST /open_api/v1/batch_questions
请求参数:(一次最大支持100条数据)
参数名 | 必填 | 参数类型 | 描述 | |
---|---|---|---|---|
creator_id | 否 | Integer | 题目创建人,默认为管理员 | |
questions | 是 | Array | 题目列表,最大长度为100 | |
language | 否 | string | 题目语言,默认富文本 | |
contents | 是 | string | 题目内容及代码 | |
description | 否 | string | 题目描述备注,仅面试官可见 | |
title | 否 | string | 题目标题备注 |
返回结果(data中的内容):
参数名 | 参数类型 | 描述 | ||
---|---|---|---|---|
success_count | 是 | Boolean | 创建成功数量 | |
fail_count | 否 | String | 失败数量 | |
questions | 是 | Array | 题目数组 | |
success | 是 | Boolean | 是否创建成功 | |
message | 否 | String | 失败原因 | |
question | 是 | Object | 题目信息,成功时与创建题目返回一致,失败时为传入题目参数 |
例:
{
"errcode": 0,
"errmsg": "成功",
"data": {
"success_count": 1,
"fail_count": 1,
"questions": [
{
"success": true,
"message": "",
"question": {
"id": 1,
"title": "测试编程题 - 五",
"creator_id": 1001,
"creator_name": "李四",
"language": "Java",
"contents": "// 冒泡排序:从当前元素起,向后依次比较每一对相邻元素,若逆序则交换\n public class ShowMeBug {}",
"description": "考察冒泡排序",
"created_at": "2020-10-01T16:00:00+08:00",
"updated_at": "2020-10-01T16:00:00+08:00"
}
},
{
"success": false,
"message": "Contents 不能为空",
"question": {
"contents": null,
"title": null,
"language": "ruby",
"description": ""
}
}
]
}
}
删除面试题目
DELETE /open_api/v1/questions/:id
返回结果:
例:
{
"errcode": 0,
"errmsg": "成功"
}