在网上搜了很久App接口开发的博客,但发现真的很少,所以我把自己的知道的总结一下,分享开来,读完全篇,一定会有收获。
- 传输方式和格式 接口采用http协议 提供给ios或者是Android客户端使用,格式采用json格式,格式上易于处理就可以,格式看具体需求和处理的方便程度。
{
"code": 200,
"msg": "请求成功",
"data": {
"name": "zhangyu",
"id": 43378,
"work_type": "php"
}
}
严格的数据类型 ios和Android开发对数据类型的要求是严格的,类型不一致会造成App闪退、不响应等各种奇葩现象,所以在定义文档时定义好严格的数据类型,整形、字符串、数组和对象不能混,严格按照wiki的输入输出来把握。
响应速度 接口的响应速度理论上越快越好,一般以200ms为最佳,有时也按具体业务进行区别,在查询历史数据时建议使用缓存,异步、埋点等方式处理,以提高接口的响应数据。
接口的并发 接口的并发一直是比较头疼的问题,并发量多所产生的数据一致性问题,我们使用redis锁来处理,下面是代码。
$redis = new Redis();
$redis->connect("localhost");
$mutex = new PHPRedisMutex([$redis], "balance");
$mutex->synchronized(function () use ($bankAccount, $amount) {
$balance = $bankAccount->getBalance();
$balance -= $amount;
if ($balance < 0) {
throw new \DomainException("You have no credit.");
}
$bankAccount->setBalance($balance);
});
辅助开发的工具 在接口开发中一定会使用到代理或者模拟的数据接口的工作Chrome的postman,Charles 都是很好的工具,它能很方便快捷的查看。linux中的grep和find工具也是很常用很好的命令。
定位问题 在App的生产环境,对程序员的响应速度要求特别高,出现BUG应该及时处理,线上采用邮件告警、log处理、kibana日志管理系统定位问题及时处理。
暂时只有这么多了,以后在有在更新。