我目前正在一个网站上工作,后端有Spring,前端有Angularjs,我们讨论了后端响应以处理前端的消息对话框,我有一个问题要问:
假设我有一个API:
GET : /getstatistics
Request params : fromTime,toTime ( in timestamp format)
Run Code Online (Sandbox Code Playgroud)
如果客户端使用无效的params(如字符串)发出请求,应该从服务器返回哪个响应代码?HTTP 400错误的请求和响应正文,消息"fromTime和toTime应该是时间戳格式"或HTTP 200具有相同的消息?
我看到一些谷歌的API,例如Oauth,他们为无效access_token的请求返回代码200但是,在我们的项目中,我认为它应该是HTTP 400,因为Javascript有成功和错误回调,它是否更好它只是弹出一个红色内部消息而不是HTTP 200代码的颜色对话框然后仍然需要检查消息的内容?
任何建议和意见表示赞赏.
谢谢!
您应该400为错误请求返回错误.看看这个参考.
由于被认为是客户端错误的东西(例如,格式错误的请求语法,无效的请求消息成帧或欺骗性请求路由),服务器不能或不会处理该请求.
客户必须了解任何状态代码的类,如第一个数字所示
和,
4xx(客户端错误):请求包含错误的语法或无法满足
错误的语法可能就像你在问题中提到的那样(使用无效参数发出请求,比如字符串).
每当我设计RESTful API时,我都会将这两个引用放在手边,对您也有帮助: