接口整理
接口
斑马快跑
1. 说明
1.1 文档目的
该文档目的是引导客户端及服务器进行重构。主要目的是约束服务器api接口。主要进行:
- 接口清理。移除不必要的接口,整合功能重复的接口。
- 参数清理。移除不必要的参数,增加必要的但之前未加入的参数(比如
token
之前有的没传)。
- 路由清理。规范路由命名格式。如,所有
/provider
路由全部变更为/walker
。基本需要保证一看到路由就知道是做什么的。
- 规范变量命名。详细的命名约定见1.2节。
- 数据格式约定。详见1.3节。
- 数据库重构说明。数据库重构后有的地方需要客户端了解。这里会有大致的说明。请参看1.4节。
- 返回错误类型约定。详见第5节。
1.2 变量命名约定
注意,此变量命名约定并不一定代表业界规范。已尽量向业界规范靠拢。欢迎提出宝贵意见。
项目 |
命名方式 |
示例 |
接口路由命名 |
小写字母+减号 |
/walker/register-device-token |
传递参数命名 |
小写字母+下划线 |
walker_id |
- 丢弃provider命名。所有司机相关的名称一律被称作walker。比如路由中。
- 丢弃request命名。所有订单相关的名称都被称为order。这主要是因为request表意不明,而且容易和Http Request混淆。
1.3 数据格式定义
1.3.1 成功消息
{
'success': true,
'data': {
...
}
}
1.3.2 失败消息
{
'success': false,
'error_code': 4001
}
1.4 数据库重构说明
数据库表说明:
表名 |
说明 |
bills |
账单 |
broadcast_records |
记录广播订单记录 |
estimate_bills |
预估账单 |
jobs |
|
failed+jobs |
|
message_verifiles |
验证码 |
monthly_online_times |
该月在线时间 |
order |
订单 |
owner_reviews |
司机给用户的评价 |
owners |
用户信息 |
push_logs |
推送信息日志 |
walk_loaction |
货运途中的位置信息 |
walker_reviews |
用户给司机的评价 |
walker_types |
货车种类和信息 |
walkers |
司机信息 |
2. 司机端接口
2.1 登录注册相关
2.1.1 /walker/register
项目 |
值 |
类型 |
说明 |
名称 |
司机注册 |
|
|
路径 |
/walker/register |
|
|
入参 |
name |
string |
姓名 |
|
portrait |
string |
头像 |
|
password |
string |
密码 |
|
phone |
string |
手机号 |
|
verify_id |
int/string |
通过验证码接口获取到的验证码ID |
|
verify_code |
int/string |
|
|
recommend_by |
string |
推荐人信息 |
返回值格式
[
'success' => true,
'data' => [
'walker' => $walker->toArray(),
'orders' => $orders,
'time' => $walker->onlineTime()//这里方法跳转失效,请注意,真正调用的方法在Model中
]
]
2.1.2 /walker/login
项目 |
值 |
类型 |
说明 |
名称 |
司机登录 |
|
|
路径 |
/walker/login |
|
|
入参 |
phone |
string |
电话 |
|
password |
string |
密码 |
|
device_type(目前可选) |
string |
设备类型。这个值为android/ios |
2.1.3 /walker/update-profile
项目 |
值 |
类型 |
说明 |
名称 |
司机完善自己的资料 |
|
|
路径 |
/walker/update-profile |
|
|
入参 |
walker_id |
int/string |
司机id |
|
token |
string |
身份识别码 |
|
name(可选) |
string |
姓名 |
|
email(可选) |
string |
电子邮件 |
|
identify_card_number(可选) |
string |
身份证号码 |
|
phone(可选) |
string |
手机号码 |
|
recommend_by(可选) |
string |
推荐人信息 |
|
password(可选) |
string |
密码 |
|
portrait(可选) |
string |
头像 |
|
address(可选) |
string |
住址 |
|
country(可选) |
string |
国家 |
|
province(可选) |
string |
省份 |
|
city(可选) |
string |
城市 |
|
car_num(可选) |
string |
车牌号 |
|
driver_num(可选) |
string |
驾驶证号 |
|
license_num(可选) |
string |
车辆行驶证号 |
|
id_card_front(可选) |
string |
身份证正面照片链接 |
|
id_card_back(可选) |
string |
身份证背面照片链接 |
|
car_pic(可选) |
string |
车辆照片链接 |
|
car_num_pic(可选) |
string |
车牌号照片链接 |
|
driver_num_pic(可选) |
string |
驾驶证照片链接 |
|
license_pic(可选) |
string |
车辆行驶证照片链接 |
2.1.4 /walker/reset-password
项目 |
值 |
类型 |
说明 |
名称 |
司机修改密码 |
|
|
路径 |
/walker/reset-password |
|
|
入参 |
phone |
string |
电话号码 |
|
verify_id |
int/string |
验证码ID |
|
verify_code |
string |
验证码 |
|
password |
string |
新密码 |
2.1.5 /walker/message-verify
项目 |
值 |
类型 |
说明 |
名称 |
司机端获取验证码 |
|
|
路径 |
/walker/message-verify |
/provider/getSMScode |
|
入参 |
phone |
|
|
返回码 |
200 |
|
|
返回内容 |
成功或者失败 |
|
|
2.2 订单相关功能
2.2.1 /walker/report
项目 |
值 |
类型 |
说明 |
名称 |
司机向服务器汇报位置、在线时长 |
|
|
路径 |
/walker/report |
|
|
入参 |
walker_id |
int |
|
|
token |
string |
|
|
latitude |
decimal |
经度 |
|
longitude |
decimal |
纬度 |
|
location |
string |
当前地址 |
|
time |
int |
当前统计的总在线时长 |
|
order_id(根据情况可选) |
int |
订单ID。如果传入该参数表示在订单中,该点将纳入行程统计 |
2.2.2 /walker/respond-order
项目 |
值 |
类型 |
说明 |
名称 |
司机收到订单后,对订单进行响应 |
|
|
路径 |
/walker/respond-order |
/provider/respondrequest |
|
入参 |
walker_id |
int |
|
|
token |
string |
|
|
order_id |
int |
订单ID |
2.2.3 /walker/track
项目 |
值 |
类型 |
说明 |
名称 |
司机查询运货轨迹 |
|
|
路径 |
/walker/track |
|
|
入参 |
walker_id |
|
|
|
token |
|
|
|
order_id |
int |
订单ID |
返回码 |
200 |
|
|
返回内容 |
返回该订单的运货轨迹 |
|
|
2.2.4 /walker/walker-started(@deprecated)
项目 |
值 |
类型 |
说明 |
名称 |
司机出发 |
|
因为司机在接单成功后会自动标记为已出发,所以不需要去手动调用此接口 |
路径 |
/walker/walker-started |
|
|
入参 |
walker_id |
|
|
|
token |
|
|
|
order_id |
|
|
|
latitude |
|
|
|
longitude |
|
|
返回码 |
200 |
|
|
返回内容 |
简单返回成功或失败即可 |
|
|
2.2.5 /walker/walker-arrived
项目 |
值 |
类型 |
说明 |
名称 |
司机到达 |
|
在发货付费的流程中并不会存在装货时间,所以这个接口不会被调用 |
路径 |
/walker/walker-arrived |
/provider/requestwalkerarrived |
|
status条件 |
|
|
3 |
入参 |
walker_id |
|
|
|
token |
|
|
|
order_id |
|
|
|
latitude |
|
|
|
longitude |
|
|
|
location |
|
|
返回码 |
200 |
|
|
返回内容 |
简单返回成功或者失败即可 |
|
|
2.2.6 /walker/walk-started
项目 |
值 |
类型 |
说明 |
名称 |
司机开始送货 |
|
|
路径 |
/walker/walk-started |
/provider/requestwalkstarted |
|
status条件 |
|
|
4 |
入参 |
walker_id |
|
|
|
token |
|
|
|
order_id |
|
|
|
latitude |
decimal |
经度 |
|
longitude |
decimal |
纬度 |
|
location |
string |
当前位置 |
返回码 |
200 |
|
|
返回内容 |
返回开始时间及装货时长 |
|
|
2.2.7 /walker/walk-completed
项目 |
值 |
类型 |
说明 |
名称 |
司机结束送货 |
|
|
路径 |
/walker/walk-completed |
|
|
入参 |
walker_id |
|
|
|
token |
|
|
|
order_id |
|
|
|
latitude |
decimal |
经度 |
|
longitude |
decimal |
纬度 |
|
location |
string |
当前位置 |
返回码 |
200 |
|
|
返回内容 |
返回账单信息 |
|
|
2.2.8 /walker/order-terminated
项目 |
值 |
类型 |
说明 |
名称 |
司机取消订单 |
|
|
路径 |
/walker/order-terminated |
|
|
入参 |
walker_id |
|
|
|
token |
|
|
|
order_id |
|
|
|
remark |
string |
取消原因 |
2.3 其他辅助功能
2.3.1 /walker/check-state
项目 |
值 |
类型 |
说明 |
名称 |
司机查询自己当前的上下班状态 |
|
|
路径 |
/walker/check-state |
|
|
入参 |
walker_id |
|
|
|
token |
|
|
2.3.2 /walker/toggle-state
项目 |
值 |
类型 |
说明 |
名称 |
司机切换自己当前的上下班状态 |
|
|
路径 |
/walker/toggle-state |
|
|
入参 |
walker_id |
|
|
|
token |
|
|
2.3.3 /walker/walker-types
项目 |
值 |
类型 |
说明 |
名称 |
查询车辆类型 |
|
|
路径 |
/walker/walker-types |
|
|
入参 |
walker_id |
|
|
|
token |
|
|
2.3.4 /walker/order-detail
项目 |
值 |
类型 |
说明 |
名称 |
司机切换自己当前的上下班状态 |
|
|
路径 |
/walker/order-detail |
|
|
入参 |
walker_id |
|
|
|
token |
|
|
|
order_id |
|
|
2.3.5 /walker/history(尚未完成)
项目 |
值 |
类型 |
说明 |
名称 |
获取历史订单记录 |
|
|
路径 |
/walker/history |
|
|
入参 |
walker_id |
|
|
|
token |
|
|
|
page(可选) |
|
|
返回码 |
200 |
|
|
返回内容 |
返回所有历史订单信息 |
|
|
2.3.6 查询通知列表(尚未完成)
项目 |
值 |
旧的版本 |
说明 |
名称 |
司机查询系统公告 |
|
|
Http请求方式 |
GET |
|
|
路径 |
/walker/get-notification-list |
/provider/getnotificationlist |
|
入参 |
walker_id |
|
|
|
token |
|
|
返回码 |
200 |
|
|
返回内容 |
返回通知列表,除了通知具体内容都返回。 |
|
|
2.3.7 查询一个具体的通知(尚未完成)
项目 |
值 |
旧的版本 |
说明 |
名称 |
司机查询一个具体的通知 |
|
|
Http请求方式 |
GET |
|
|
路径 |
/walker/get-notification |
/provider/getnotification |
|
入参 |
walker_id |
|
|
|
token |
|
|
|
notification_id |
|
|
返回码 |
200 |
|
|
返回内容 |
返回一个通知的具体内容 |
|
|
3. 乘客端接口
3.1 登录注册相关
3.1.1 /owner/register
项目 |
值 |
类型 |
说明 |
名称 |
货主注册 |
|
|
路径 |
/owner/register |
|
|
入参 |
name |
string |
|
|
portrait |
string |
|
|
password |
string |
|
|
phone |
string |
|
|
verify_id |
int |
|
|
verify_code |
string |
|
3.1.2 /owner/login
项目 |
值 |
类型 |
说明 |
名称 |
货主登录 |
|
|
路径 |
/owner/login |
|
|
入参 |
phone |
string |
|
|
password |
string |
|
|
device_type |
string |
|
3.1.3 /owner/reset-password
项目 |
值 |
旧的版本 |
说明 |
名称 |
货主修改密码 |
|
|
路径 |
/owner/reset-password |
/owner/resetpassword |
|
入参 |
phone |
|
|
|
verify_id |
|
|
|
verify_code |
|
|
|
password |
|
|
返回码 |
200 |
|
|
返回内容 |
返回成功或失败即可 |
|
|
3.1.4 /owner/update-profile
项目 |
值 |
旧的版本 |
说明 |
名称 |
货主更新资料 |
|
|
路径 |
/owner/update-profile |
/owner/updateprofile和/owner/addprofile |
|
入参 |
walker_id |
|
|
|
token |
|
|
|
name(可选) |
|
|
|
email(可选) |
|
|
|
identify_card_number(可选) |
|
|
|
phone(可选) |
|
|
|
password(可选) |
|
|
|
portrait(可选) |
|
|
|
address(可选) |
|
|
|
country(可选) |
|
|
|
province(可选) |
|
|
|
city(可选) |
|
|
3.1.5 /owner/message-verify
项目 |
值 |
旧的版本 |
说明 |
名称 |
货主端获取验证码 |
|
|
路径 |
/owner/message-verify |
/owner/getSMScode |
|
入参 |
phone |
|
|
|
token |
|
|
返回码 |
200 |
|
|
返回内容 |
返回一个通知的具体内容 |
|
|
3.4 订单相关功能
3.4.1 /owner/order-created
项目 |
值 |
类型 |
说明 |
名称 |
发单 |
|
|
路径 |
/owner/order-created |
|
|
入参 |
owner_id |
|
|
|
token |
|
|
|
latitude(starting_latitude) |
|
|
|
longitude(starting_longitude) |
|
|
|
D_latitude(destination_latitude) |
|
|
|
D_longitude(destination_longitude) |
|
|
|
type |
|
|
|
other_fee |
|
|
|
message(remark) |
|
|
|
start_place(starting_address) |
|
|
|
dest_place(destination_address) |
|
|
|
distance |
|
|
|
distance_price(distance_cost) |
|
|
|
time(walking_time) |
|
|
|
time_price(time_cost) |
|
|
|
total_price(total) |
|
|
|
base_price |
|
|
|
payment(payment_mode) |
|
|
3.4.2 /owner/order-cancelled
项目 |
值 |
类型 |
说明 |
名称 |
发单 |
|
|
路径 |
/owner/order-created |
|
|
入参 |
owner_id |
|
|
|
token |
|
|
|
order_id |
|
|
返回码 |
200 |
|
|
返回内容 |
返回一个通知的具体内容 |
|
|
3.4.3 /owner/order-terminated
项目 |
值 |
旧的版本 |
说明 |
名称 |
终止订单 |
|
|
路径 |
/owner/walker-types |
/application/getwalkertypes |
|
入参 |
owner_id |
|
|
|
token |
|
|
|
order_id |
|
|
返回码 |
200 |
|
|
返回内容 |
|
|
|
3.4.5 /owner/nearby-walkers
项目 |
值 |
类型 |
说明 |
名称 |
附近的司机 |
|
|
路径 |
/owner/nearby-walkers |
|
|
入参 |
owner_id |
|
|
|
token |
|
|
|
latitude |
|
|
|
longitude |
|
|
|
type(可选) |
|
|
返回内容 |
json(['success' => true, 'data' => ['walkers' => $walkers]]) |
|
|
3.4.6 /owner/order-in-progress
项目 |
值 |
类型 |
说明 |
名称 |
查询进行中的订单 |
|
|
路径 |
order-in-progress |
|
|
入参 |
owner_id |
|
|
|
token |
|
|
返回内容 |
json(['success' => true, 'order' => $order->toArray()] |
|
|
3.4.7 /owner/history
项目 |
值 |
类型 |
说明 |
名称 |
查询历史订单 |
|
|
路径 |
history |
|
|
入参 |
owner_id |
|
|
|
token |
|
|
返回内容 |
json(['success' => true, 'data' => [ 'orders' => $orders]]) |
|
|
3.4.8 /owner/track
项目 |
值 |
类型 |
说明 |
名称 |
查询订单轨迹 |
|
|
路径 |
track |
|
|
入参 |
owner_id |
|
|
|
token |
|
|
|
order_id |
|
|
返回内容 |
response()->json(['success' => true, 'data' => ['locations' => $locations]]) |
|
|
3.4.9 /owner/order-detail
项目 |
值 |
类型 |
说明 |
名称 |
查询订单详情 |
|
|
路径 |
order-detail |
|
|
入参 |
owner_id |
|
|
|
token |
|
|
|
order_id |
|
|
返回内容 |
json(['success' => true,'data' => ['order' => $order]]) |
|
|
3.4.10 /owner/set-walker-rating
项目 |
值 |
类型 |
说明 |
名称 |
货主评论 |
|
|
入参 |
owner_id |
|
|
|
token |
|
|
|
order_id |
|
|
|
rating |
|
|
|
comment |
|
|
返回内容 |
成功与否 |
|
|
3.4.11 /owner/message-verify
项目 |
值 |
类型 |
说明 |
名称 |
获取验证码 |
|
|
入参 |
owner_id |
|
|
|
token |
|
|
|
phone |
|
|
|
返回内容 |
json(['success' => true, 'data' => ['verify_id' => $verify_id]]) |
|
3.4.12 /owner/confirmPush
3.5 其它辅助功能
3.5.1 /owner/walker-types
项目 |
值 |
类型 |
说明 |
名称 |
货主查询车辆类型及价格 |
|
|
路径 |
/owner/walker-types |
|
|
入参 |
owner_id |
|
|
|
locale_id |
|
这是后来加的参数,暂时可以不传 |
|
token |
|
|
4. 通用接口
5. 错误码汇总
错误码 |
描述 |
4001 |
请求路径错误 |
4002 |
请求参数错误 |
4003 |
token不匹配 |
4004 |
token过期 |
4005 |
数据库查询失败 |
4006 |
短信验证码发送失败 |
4007 |
密码错误 |
4008 |
验证码错误 |
4009 |
权限错误 |
4010 |
操作不符合状态要求,请更新状态 |
6.status 定义
订单状态order->status
订单状态 |
status数值 |
订单刚发出未被处广播 |
0 |
订单被广播但未接单 |
1 |
订单已经被分派到司机 |
2 |
司机出发 |
3 |
司机已到达开始装货 |
4 |
装货结束开始运输 |
5 |
运货完成,但未被支付 |
6 |
支付完成 |
7 |
订单被货主取消(未被接时就取消) |
8 |
订单被司机中止 |
9 |
订单被乘客中止 |
10 |
司机状态walker->is_available