
1) 【一句话结论】设计一个符合要求的招聘信息发布API,需包含请求参数校验(必填字段、技能要求正则验证)、权限控制(仅企业认证用户,通过JWT验证企业状态)、JSON响应格式,并处理参数错误(400状态码,具体错误字段)和权限不足(403状态码,认证状态提示)等异常。
2) 【原理/概念讲解】老师口吻解释关键点:
API接口设计需明确请求方法(POST)、URL路径(如/api/v1/jobs)、请求参数(企业名称、职位名称等必填字段)、响应结构(状态码、消息、数据/错误详情)。
3) 【对比与适用场景】
| 对比项 | 参数校验工具(Joi) | 权限控制方案(JWT) |
|---|---|---|
| 定义 | 验证请求参数合法性 | 验证用户身份与权限 |
| 特性 | 支持复杂规则(正则、数组)、错误提示 | 基于令牌验证,轻量,适合单点登录 |
| 使用场景 | API参数验证(必填、格式检查) | 用户认证(企业用户登录后发布招聘) |
| 注意点 | 需配置验证规则,避免过度复杂 | 令牌过期处理,防止未授权访问 |
4) 【示例】
/api/v1/jobs,JSON参数):
{
"enterpriseName": "大连海事集团",
"positionName": "船舶工程师",
"skillRequirements": ["船舶设计", "CAD", "英语C1"],
"location": "大连",
"salary": "8000-15000",
"description": "负责船舶设计及维护..."
}
{
"code": 200,
"message": "招聘信息发布成功",
"data": {
"jobId": "job_12345",
"status": "published"
}
}
{
"code": 400,
"message": "企业名称不能为空",
"errors": {
"enterpriseName": "企业名称是必填字段"
}
}
{
"code": 403,
"message": "无发布招聘信息的权限",
"errors": {
"permission": "仅企业认证用户可发布"
}
}
5) 【面试口播版答案】
面试官您好,针对海事企业发布招聘信息的API设计,核心是确保数据完整、权限安全、响应规范。接口采用POST方法,路径为/api/v1/jobs,请求参数包含企业名称、职位名称等必填字段。参数校验方面,通过Joi工具验证必填字段非空,技能要求为有效数组(非空字符串,如“船舶设计”);权限控制使用JWT令牌,验证用户是否为企业认证用户(令牌中的企业ID匹配且企业状态为“认证”);响应统一为JSON,包含状态码、消息、数据或错误信息。异常处理上,参数错误返回400(如企业名称为空),权限不足返回403(非认证用户),成功返回200(带jobId)。具体来说,请求示例是POST /api/v1/jobs,参数如企业名称、职位名称等,响应成功时返回jobId,失败时返回具体错误信息。这样既满足功能需求,又保证安全性和易用性。
6) 【追问清单】
/^[a-zA-Z0-9一-龥]+$/)。7) 【常见坑/雷区】