如何去判断一个接口是否是restful接口呢?
1.每一个URI代表一种资源;
http://127.0.0.1/test/zoos //所有动物园 Get请求
http://127.0.0.1/test/cars //所有汽车 Get请求
2.客户端通过四个HTTP动词(get、post、put、delete),对服务器端资源进行操作。与之前接口差别最大的就是这个,之前通过方法名去判断这个方法是干什么的,现在是通过请求方式进行区分。
原始接口方式:
https://example.com/api/getAllUsers GET/POST 获取所有用户
https://example.com/api/deleteUser GET/POST 删除用户
https://example.com/api/updateUser GET/POST 更新用户
resuful风格:
https://example.com/api/users GET 获取所有用户信息
https://example.com/api/users/1 GET 获取标识为1用户信息
https://example.com/api/users POST 添加新的用户
https://example.com/api/users/1 DELETE 删除标识为1用户信息
https://example.com/api/users/1 PUT更新标识为1用户部分信息,包含在body中
3.定义统一返回接口形式
其实这一点之前的接口规范应该也有的,封装一个类所有接口调用返回时都返回这个类,格式在类中定义好。
例如:
返回成功的响应json格式:
{“code”: 200,“message”: “success”,“data”: xxx}
返回失败的响应json格式:
{“code”: 401,“message”: “error message”,“data”: null}
实体类定义的话写一个简单的例子:
public class Response {
private String code;
private String message;
private Object data;
public static Response SUCCESS = new Response ("200", "success", null);
public static Response SUCCESS(Object data) {
return new Response ("200", "success", data);
}
public static Response FAIL(String code, String message) {
return FAIL(code, message, null);
}
}
一个类中方法多的时候感觉restful风格的方法命名也有点困难。。
最后附上http请求的状态码含义:
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
200 | OK | 请求成功 |
400 | Bad Request | 客户端请求的语法错误,服务器无法理解 |
401 | Unauthorized | 请求要求用户的身份认证 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页 |
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
502 | Bad Gateway | 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页 |