PHP开发Api心得小结
2018-03-08 18:03
302 查看
前两天老板给了个活,大概需求就是商机之前是通过人工去导入的excel,现在写个接口,让客户给传商机数据进来,我们检验一下然后存起来,但是客户公司比较大(相对于我们公司。。),要求的比较严,所以老板的要求是要写的bigger高一点。
(用户唯一的标识码+时间戳+数据条数)的两次md5加密
错误代码配合文档(专业,而且数字不涉及编码问题)
根据不同的错误类型区分错误代码
异常处理(装(哔——))
所有本来能用if-else判断返回错误代码的地方统统用了抛出异常,说实话除了bigger高之外我并不知道优点是什么,而且异常处理会拖慢处理速度
用switch代替if-else(可读性)
这个的有点还是很明显的,很多的判断条件或成立之后都要抛出同一个异常,如果用if来写的话,条件语句会很长,可读性会很低,但是这个算是基本的吧。。也提升不了啥bigger
日志记录每次请求的返回值(记日志总是没有错的)
记录下是数据是从哪个客户传过来的,
Oracle插入失败时tp报错,直接把插入失败错误页面返回给了访问者,安全性极差
解决办法:emmm,现在还没解决。。。只是规范了下他们的数据还有我们这的验证,如果真的还是出了这个错误估计还会给他们报错
接上,也就没有默认的异常处理,如果系统报错或者框架报错,根本搂不住,而且有个未知错误的错误码,却没有真正触发
解决办法 :给每一个调用的客户分配一个md5(base64(code))加密之后的唯一加密串,拼接到之前的字符串中再加密
针对上面的问题1:必须能看到的,记日志吧,同一次的要能看出是同一次的,加个标识啥的
解决方法:本地记录的日志添加记录内容,从开始时候传入的json,到每一个数据非法但不至于返回错误码的错误细节,再到最后的返回码,然后标识没有加,而是在每次请求的开始的时候记录json之前加入了一行”===========”,结束返回错误码时在后面加了一行”===================”
我的思路:
签名(安全性)(用户唯一的标识码+时间戳+数据条数)的两次md5加密
错误代码配合文档(专业,而且数字不涉及编码问题)
根据不同的错误类型区分错误代码
异常处理(装(哔——))
所有本来能用if-else判断返回错误代码的地方统统用了抛出异常,说实话除了bigger高之外我并不知道优点是什么,而且异常处理会拖慢处理速度
用switch代替if-else(可读性)
这个的有点还是很明显的,很多的判断条件或成立之后都要抛出同一个异常,如果用if来写的话,条件语句会很长,可读性会很低,但是这个算是基本的吧。。也提升不了啥bigger
日志记录每次请求的返回值(记日志总是没有错的)
记录下是数据是从哪个客户传过来的,
测试过程中出现的问题
无法在我这看到客户传过来的数据Oracle插入失败时tp报错,直接把插入失败错误页面返回给了访问者,安全性极差
解决办法:emmm,现在还没解决。。。只是规范了下他们的数据还有我们这的验证,如果真的还是出了这个错误估计还会给他们报错
接上,也就没有默认的异常处理,如果系统报错或者框架报错,根本搂不住,而且有个未知错误的错误码,却没有真正触发
老板的提议
签名计算方式不合理,不应该所有的东西都在json中,不然谁截取到之后直接就能破解解决办法 :给每一个调用的客户分配一个md5(base64(code))加密之后的唯一加密串,拼接到之前的字符串中再加密
针对上面的问题1:必须能看到的,记日志吧,同一次的要能看出是同一次的,加个标识啥的
解决方法:本地记录的日志添加记录内容,从开始时候传入的json,到每一个数据非法但不至于返回错误码的错误细节,再到最后的返回码,然后标识没有加,而是在每次请求的开始的时候记录json之前加入了一行”===========”,结束返回错误码时在后面加了一行”===================”
相关文章推荐
- API开发第三篇:PHP的设计模式之完美的单例模式
- 利用Yahoo! Search API开发自已的搜索引擎-php版
- 【Day63】PHP支付宝服务窗API接口的开发
- 浅谈 PHP 与手机 APP 开发(API 接口开发)
- PHP开发心得一
- [工作小结]PHP和其他编程语言联合开发网站的一种方法
- 微信公众号开发教程[020]-wxsdk4php:微信公众号和微信支付开发的所有API功能点的封装及调用实例
- PHP开发工作心得
- PHP服务器端API原理及示例(接口开发)
- PHP支付宝服务窗API接口的开发
- 微信开发小结-PHP
- PHP开发API接口的实例代码
- 浅谈 PHP 与手机 APP 开发(API 接口开发)
- 浅谈PHP与手机APP开发即API接口开发
- PHP服务器文件管理器开发小结(八):更多的操作――重命名、移动、删除
- MUi开发: mui.post学习心得、php做后端和跨域的解决办法
- php开发移动app(api)接口时应该注意的事项
- PHP API 框架开发的学习
- PHP服务器文件管理器开发小结(九):jQuery动态表单实现文件下载
- 基于php开发的RESTful ApiDoc文档