您的位置:首页 > 编程语言 > PHP开发

PHP开发Api心得小结

2018-03-08 18:03 302 查看
前两天老板给了个活,大概需求就是商机之前是通过人工去导入的excel,现在写个接口,让客户给传商机数据进来,我们检验一下然后存起来,但是客户公司比较大(相对于我们公司。。),要求的比较严,所以老板的要求是要写的bigger高一点。

我的思路:

签名(安全性)

(用户唯一的标识码+时间戳+数据条数)的两次md5加密

错误代码配合文档(专业,而且数字不涉及编码问题)

根据不同的错误类型区分错误代码

异常处理(装(哔——))

所有本来能用if-else判断返回错误代码的地方统统用了抛出异常,说实话除了bigger高之外我并不知道优点是什么,而且异常处理会拖慢处理速度

用switch代替if-else(可读性)

这个的有点还是很明显的,很多的判断条件或成立之后都要抛出同一个异常,如果用if来写的话,条件语句会很长,可读性会很低,但是这个算是基本的吧。。也提升不了啥bigger

日志记录每次请求的返回值(记日志总是没有错的)

记录下是数据是从哪个客户传过来的,

测试过程中出现的问题

无法在我这看到客户传过来的数据

Oracle插入失败时tp报错,直接把插入失败错误页面返回给了访问者,安全性极差

解决办法:emmm,现在还没解决。。。只是规范了下他们的数据还有我们这的验证,如果真的还是出了这个错误估计还会给他们报错

接上,也就没有默认的异常处理,如果系统报错或者框架报错,根本搂不住,而且有个未知错误的错误码,却没有真正触发

老板的提议

签名计算方式不合理,不应该所有的东西都在json中,不然谁截取到之后直接就能破解

解决办法 :给每一个调用的客户分配一个md5(base64(code))加密之后的唯一加密串,拼接到之前的字符串中再加密

针对上面的问题1:必须能看到的,记日志吧,同一次的要能看出是同一次的,加个标识啥的

解决方法:本地记录的日志添加记录内容,从开始时候传入的json,到每一个数据非法但不至于返回错误码的错误细节,再到最后的返回码,然后标识没有加,而是在每次请求的开始的时候记录json之前加入了一行”===========”,结束返回错误码时在后面加了一行”===================”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Api开发 PHP