接口书写问题

php中文网
发布: 2016-12-01 00:25:19
原创
1577人浏览过

我的接口是这样子的,有返回的时候,json里面的data才会有值,不然就会是一个空字符串
接口书写问题

接口书写问题

同事跟我说,他接收的时候,data是用json转成对象去取,然后如果data是空,他整个程序就爆掉了,要么我data返回null,不能返回空。我就搞不明白真的是这样子吗
接口书写问题

回复内容:

我的接口是这样子的,有返回的时候,json里面的data才会有值,不然就会是一个空字符串
接口书写问题

接口书写问题

同事跟我说,他接收的时候,data是用json转成对象去取,然后如果data是空,他整个程序就爆掉了,要么我data返回null,不能返回空。我就搞不明白真的是这样子吗
接口书写问题

确实是这样你原本的data是个对象,这里变成了数组他没做处理就会挂掉,你可以 $info['data'] = new stdClass();//返回空对象
作为一个服务端我觉得应该对字段类型敏感处理。

难道不用判断code值的吗?

你同事是不是用了框架去解析的json,让他手动解析一遍就好了。不要用框架。
不然框架不能判断data里面的[]这个是个空对象。
当然也可以在解析前判断一下code的值。

如果客户端代码写的不好的话,确实会这样。这锅甩给你了,要是你比他牛,你就甩回去;不然的话,接锅吧。。。

一般客户端都会使用类似于gson的框架去解析服务端返回的json数据,而数据格式是需要提前定义的。data既然是一个对象,那你就用对象的默认值null,我觉得这个需求也挺正常的。

猫眼课题宝
猫眼课题宝

5分钟定创新选题,3步生成高质量标书!

猫眼课题宝 85
查看详情 猫眼课题宝

我觉得这个就是,看谁好改 就谁改的问题啊 ~~
我觉得你说的也有道理,一般我同事他怎么给我方便返,我就怎么取。然后自己在做处理。
当然,具体问题具体分析吧~~

我觉得判断code的值比较好

作为API, 同一字段应该返回相同数据类型。
但是如果解决问题的话,使用code 也可以。
所以,如果在开发中就改接口,如果已经上线了,还是改接口。

所以需要接口联调

你同事说的没问题,要保证每个字段的数据类型始终一致,毕竟他们是强类型么,哈哈

app端写的不够严谨,先判断状态码code,成功则继续解析data,不成功,返回错误码code,不进行解析,
服务端因为php弱类型,app端对每个数据的类型都有要求,即强类型,尽量保证返回数据类型的一致性,data不为空的时候,返回的json字符串,app端解析为对象,data为空的时候,服务端判断是否为空,为空则赋值一个空对象

<code>$obj = new stdClass();</code>
登录后复制

php端干嘛不首先定义变量呢??$data=array()
另外客户端不管怎么样都要进行保证不闪退,,我建议你在开发过程中,模拟一些错误返回值给客户端看看客户端会不会闪退,然后让他背黑锅哈哈,开玩笑了

<code class="php">$result = array(
    "code" => "2",
    "msg" => "",
    "data" => (Object)array()
);</code>
登录后复制

别直接写

<code class="php">$result = array(
    "code" => "2",
    "msg" => "",
    "data" => array()
);</code>
登录后复制
相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号