后端接口规范
约定接口一般包括以下数据
- 当前接口的路径是什么? 如 /auth/register
- 当前接口提交数据的类型是什么? 如
-
GET
获取数据 -
POST
提交或者创建 -
PATCH
修改数据,部分修改 -
DELETE
删除数据 -
PUT
修改数据,整体替换原有数据
- 参数类型/格式,比如是 json 格式,还是 application/x-www-form-urlencoded的数据
- 参数字段,及限制条件
- 返回成功的数据格式
- 返回失败的数据格式
这里以http://blog-server.hunger-valley.com
来作为后端接口线上地址的根路径
curl的使用
-d:用来传递数据
-X 请求类型:发送的请求类型(对于GET请求可以不加-X)
-i:展示响应头。一般用来测试登录端口查看setCookie里的cookie
-b “cookie字段”:发送请求的时候带上cookie。一般用在注销登录和判断用户是否登录以及对已经存在的数据进行修改的端口中。
如:
curl -d "title=hello&content=world&description=jirengu" -X POST "http://blog-server.hunger-valley.com/blog" -b "connect.sid=s%3AdyZh-z5fqPU_ThG9Qn8nGD6euI0UI75e.8uso0k4P6WzqWv02iQCUwxbUML2RdlOCnpKp7RSJpj0 " -i
上面的命令的意思就是发送一个POST请求传递
"title=hello&content=world&description=jirengu"字段并且带上connect.sid...这个cookie然后显示响应头
具体端口及curl的使用
POST /auth/register
功能: 用户注册
提交参数
- 参数类型:Content-Type: application/x-www-form-urlencoded;charset=utf-8
- 参数字段
- username : 用户名, 长度1到15个字符,只能是字母数字下划线中文
- password : 密码, 长度6到16个任意字符
返回数据
- 失败
- 返回格式 {"status": "fail", "msg": "错误原因"}
- 成功
- 返回格式
{
"status": "ok",
"msg": "注册成功",
"data": {
"id": 1,
"username": "hunger",
"avatar": "http://avatar.com/1.png",
"updatedAt": "2017-12-27T07:40:09.697Z",
"createdAt": "2017-12-27T07:40:09.697Z"
}
}
测试
# -d 是用来传递数据
# 对于 POST 和 PUT 可以: -X POST, 对于 GET,不加 -X
curl -d "username=hunger1&password=123456" -X POST "http://localhost:3000/auth/register"
POST /auth/login
功能: 用户登录
提交参数
- 参数类型:
Content-Type: application/x-www-form-urlencoded;charset=utf-8
- 参数字段
-
username
: 用户名, 长度1到15个字符,只能是字母数字下划线中文 -
password
: 密码, 长度6到16个任意字符
-
返回数据
- 失败
- 返回格式 {"status": "fail", "msg": "用户不存在"} 或者 {"status": "fail", "msg": "密码不正确"}
- 成功
- 返回格式
{
"status":"ok",
"msg": "登录成功",
"data": {
"id": 1,
"username": "hunger",
"avatar: "头像 url",
"createdAt": "2017-12-27T07:40:09.697Z",
"updatedAt": "2017-12-27T07:40:09.697Z"
}
}
测试命令
# -i 可以展示响应头
# 会发现响应头里有 setCookie 信息,得到 cookie
curl -d "username=hunger1&password=123456" "http://localhost:3000/auth/login" -i
GET /auth
功能: 判断用户是否登录
提交参数: 无
返回数据
- 已经登录的情况
{
"status": "ok"
"isLogin": true,
"avatar": "http://avatar.com/1.png",
"data": {
"id": 1,
"username": "hunger",
"updatedAt": "2017-12-27T07:40:09.697Z",
"createdAt": "2017-12-27T07:40:09.697Z"
}
}
- 没有登录的情况
{
"status": "ok"
"isLogin": false
}
测试命令
#先通过登录接口获取 cookie,带上 cookie 就能测试登录
curl "http://localhost:3000/auth" -b "connect.sid=s%3AmeDbrn03UtTM8fqChaPQ20wmWlnKeHiu.e3uMtu7j1zQ1iNeaajCmxkYYGQ%2FyHV1ZsozMvZYWC6s"
GET /auth/logout
功能: 注销登录
提交参数: 无
返回数据:
- 失败
- 返回格式
{"status": "fail", "msg": "用户尚未登录"}
- 返回格式
- 成功
- 返回格式
{"status": "fail", "msg": "注销成功"}
- 返回格式
测试命令
curl "http://localhost:3000/auth/logout" -b "connect.sid=s%3AmeDbrn03UtTM8fqChaPQ20wmWlnKeHiu.e3uMtu7j1zQ1iNeaajCmxkYYGQ%2FyHV1ZsozMvZYWC6s"
网友评论