由于课程原因,我们的课堂项目需要用rest API风格实现,然而之前并没有接触过rest API,于是疯狂百度,查资料。由于项目是用spring MVC写的,需要在响应体中返回资源状态,一开始不理解如何修改,一时也没找到现成的代码可以直接参考的。
参考了一堆资料,总结,rest API就是定义代码返回的规范文档。
调用成功返回代码
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: xxx
{
"url" : "/api/categories/1",
"label" : "Food",
"items_url" : "/api/items?category=1",
"brands" : [
{
"label" : "友臣",
"brand_key" : "32073",
"url" : "/api/brands/32073"
}, {
"label" : "乐事",
"brand_key" : "56632",
"url" : "/api/brands/56632"
}
...
],
"hot_searches" : …
}
code int 一定返回,不同的错误代码含义分别是:
2xx = Success(成功)
3xx = Redirect(重定向)
4xx = User error(客户端错误)
5xx = Server error(服务器端错误)
200 – OK (默认的)
201 – Created(已创建)
202 – Accepted (已接受:常用语删除请求)
400 –请求出错(语法格式有误或服务器无法理解此请求)
401 – 未授权(需要登录)
404 – 找不到 (找不到所请求的文件或脚本)
405 – 不允许此方法(错误的 HTTP方法)
409 – 冲突 (IE尝试以PUT请求创建相同的资源时)
如果每次调用都要写如此复杂的返回不是很累吗,而且还得区分资源返回状态?
对于这个疑问别人的回答是有数据直接取数据,比如修改删除就要返回状态200、500等信息