之前发布了一篇关于我的 行车服务
app iOS
端代码简析的文章:文章地址。 此篇是对这个项目后端
iOS端代码地址: iOS代码,PHP代码。如果你觉得有帮助,希望能够点个 Star
,感谢~
笔者对于
适合想要自己尝试使用 API
项目的同学阅读。
项目结构
封装好的公共文件
helper/
这个部分包括 JSON
包装函数、`返回结果函数。
各个接口实现文件
interface/
这个部分是各个接口的实现文件,由路由文件按需调用。
入口文件,接口路由
receiver.PHP
这个部分是整个项目的路由文件,接收请求,然后分发给各个接口实现文件。
代码实现
公共文件 helper/
:
这个文件封装了两个包装返回结果的函数。
{ "msg": "ok", "code": "1", "data": { "count": "3", "points_list": [{ "id": "19", "poi_name": "sss", "poi_address": "sss", "uid": "fuck", "points": "30" }, { "id": "25", "poi_name": "洗车装饰服务", "poi_address": "北三环西路76号附近", "uid": "B0FFHF5BKD", "points": "30" }] }
returnData ($msg, $code, $data)
:
适用于获取数据类型的接口,它带有 data
参数。
返回结果示例:
common.PHP
:
}
- `returnMsg ($msg, $code)`: 适用于仅返回状态的接口。 返回结果示例:
{
“msg”: “添加成功”,
“code”: “1”
}
“`
jsonHelper.PHP
:
arrayRecursive(&$array, $function, $apply_to_keys_also = false)
函数作用是对数组中的元素递归地进行传入的 $function
操作。
JSON($array)
函数用于将数组包装为 JSON
格式。
sqlHelper.PHP
:
这个文件中对所使用数据库名称、账户信息等进行设置,大家可以按照自己的信息自行在此配置。
路由文件 receiver.PHP
:
case "Login": require "interface/Login.php"; break;
这个文件是整个项目的调用入口,具体接口调用时的 url
示例即为: 服务器IP地址/DriverEpoch-Server/receiver.PHP
。
本文件解析参数中的 if
参数,然后分发到对应的接口文件。
例如, if=Login
,即为调用登录接口,分发到登录接口的实现文件:
各个接口实现文件 interface/
:
这部分我对于两个类型各选取一个接口来讲述一下。
这个接口用于获取用户的所有历史足迹。
参数列表:
这种类型的接口比刚刚的稍微复杂一些。拿到参数后,构建一条查询语句,查询用户的所有历史遗迹:
user_id:用户id
取到结果后,若结果条数为0,则返回结果条数为0的信息。否则,将 JSON
,返回给客户端。
这个接口用来为用户添加历史足迹。
参数列表:
很简单,解析到 POST
方式传入的各个参数之后,构建一条
$sql = "INSERT INTO historyPlaces (user_id, latitude, longitude, place_name, place_address) VALUES ('$user_id', '$latitude', '$longitude', '$place_name', '$place_address')";
执行之后,若 JSON
格式的成功信息。否则返回失败信息,此处就要使用前文提到的封装好的工具函数。
user_id: 用户id
latitude:纬度
longitude:经度
place_name:地点名称
place_address:地点地址
返回状态类型: AddPlace
:
返回状态+数据类型: GetPlaces
:
$sql = "SELECT add_time,place_name,place_address FROM historyPlaces WHERE user_id = '$user_id' ORDER BY add_time";
$places_list = null; $i = 0; $num = mysqli_num_rows($sqlResult); while($row = mysqli_fetch_array($sqlResult)) { $places_list[$i]['add_time'] = $row['add_time']; $places_list[$i]['place_name'] = $row['place_name']; $places_list[$i]['place_address'] = $row['place_address']; $i++; if ($i >= $num){ break; } } $data['count'] = $i; $data['places_list'] = $places_list; returnData("ok", 1, $data);
其他接口的实现文件大同小异,有一些具体的点大家可以和我继续交流。
写在最后:
我后续会再写一篇关于自己部署 LAMP
架构的
注意:本文来源网络/媒体,本站无法对本文内容的真实性、完整性、及时性、原创性提供任何保证,
请您自行验证核实并承担相关的风险与后果!
CoLaBug.com遵循[CC BY-SA 4.0]分享并保持客观立场,本站不承担此类作品侵权行为的直接责任及连带责任。
如您有版权、意见、投诉等问题,请通过[eMail]联系我们处理,如需商业授权请联系原作者/原网站。