请考虑以下资源
-年
-教室
-学生
我使用下一个与之相关的URI创建新资源
输入/年/ {year Es:2108}
PUT / classrooms / {教室代码Es:ls1sa,ls2sa,ls3sa ...}
POST /学生
一个特定年份的学生属于教室,如果他学习,第二年将转到下一个教室。
我想创建一个新的资源关联 一年级学生 使用以下URI
/ years / {yearCode} / classrooms / {classroomCode} / students / {studentsId}
在保存新资源之前,我需要检查YearCode,教室代码和StudentId。
缺少先前资源之一时,我应该发送哪个HTTP状态代码?
答案 0 :(得分:1)
一旦在URL中发送了无效值(该URL用于在服务器中定位资源),您可能会返回404
:
404
(未找到)状态代码表示原始服务器已执行 找不到目标资源的当前表示或找不到 愿意透露存在。 [...]
另一方面,如果要在请求有效负载中发送参数,则可以考虑使用422
来指示无法处理请求实体:
11.2. 422 Unprocessable Entity
422
(不可处理实体)状态代码表示服务器 了解请求实体的内容类型(因此415
(不受支持的媒体类型)状态码不正确),并且 请求实体的语法正确(因此400
(错误请求) 状态代码不正确),但无法处理其中的内容 说明。例如对于如果XML可能会出现此错误情况 请求正文包含格式正确(即语法正确)的内容,但 语义错误的XML指令。
对于两种情况,响应有效负载都应包含有关错误的详细信息。看看RFC 7807。