php数据如何转换为JSON格式输出_php数据编码与API接口开发

记得有一次,我正在为网上书店的一个API接口做数据转换。
那是2 01 5 年的一个下午,我坐在办公室的办公桌前,电脑屏幕上显示了一段PHP代码。
我需要从数据库中获取用户查询信息并将其转换为JSON格式返回给前端。
我写的代码是这样的:
$data = ['姓名' => '李华', '年龄' => 2 5 , '城市' => '上海']; 回显 json_encode($data);
输出结果如下:
{"姓名":"\u6 7 2 c\u5 3 1 7 ", "年龄":2 5 , "城市":"\u4 e0a\u6 d7 7 "}
当我接吻时,这不是代码的顺序吗?仔细检查发现是没有设置JSON_UNESCAPED_UNICODE参数。
我赶紧加上去,又跑了:
echo json_encode($data, JSON_UNESCAPED_UNICODE);
这次输出正常了:
{"姓名": "李华", "年龄": 2 5 , "城市": "上海"}
等等,我突然想到,如果数据量很大或者数据结构很复杂,JSON编码就会失败,需要检查错误处理。

如何在PHP7.0中进行API开发?

上周有客户问我在PHP7 .0中开发API需要注意什么。
我和他一起想了想,发现确实有不少东西,但都很实用。

想一想,现在9 0%的API都是RESTful的,对吧? SOAP XML 集在 Internet 上已经很长时间没有被任何人使用了。
PHP7 .0对HTTP的支持要好得多,所以第一步是选择正确的风格,而不是使用所有的功能。
2 02 3 年,我在上海一家购物中心做一个项目时,因为这个陷阱而选择了SOAP。
结果客户端直接崩溃了,因为老版本的系统不支持。

第二步是设计界面,这需要时间。
你认为入口和出口是什么样子的? JSON 肯定比 XML 简单得多,使用过它的人都知道这一点。
路径设计要规范,如/users/{id},方法要清晰区分,如GET/POST。
我在杭州带团队的时候,一个新人把所有的增删改查都写在一个界面里。
期末考试的时候,真是一团糟。
真是一团糟。
现在我们都用Swagger。
文档写好后,客户可以直接运行测试,这样就避免了很多问题。

第三步就是写代码了,这个很有趣。
框架还是原生?我更喜欢拉拉维尔。
可以看到它有路由、中间件、ORM等,可以快速开发。
但有些人喜欢原生 PHP,因为它很灵活。
2 02 2 年,我在深圳搭建了一个临时系统。
由于时间有限,我自己写的。
结果,维护人员后来发现很难做出改变。
但是你需要使用PHP7 .0的特性,比如类型声明和异常处理,可以记录多少bug。
我的一位同事编写了一个没有添加类型的函数,但是当我通过它传递一个字符串时它崩溃了,这让我很恼火。

第四阶段的测试不能省略。
Postman 和 Swagger 都非常有用。
上次在广东测试一个接口,发现状态码写错了,返回了5 00内部错误,直接导致客户慌了。
所以你得一一检查,尝试分页、权限等。
要特别注意安全,比如防止SQL注入和输入过滤。
如果做得不对,以后再哭都晚了。

最后的部署、服务器选择、性能优化等都要组织起来。
应启用 OPcache,Composer 用于类加载,有时应启用负载平衡。
2 02 3 年我在北京做一个项目的时候,客户端流量很大,没有负载均衡就宕机了,损失惨重。

无论是什么,你都能理解。
安全性、接口规范和性能优化是三个关键点。
PHP7 .0固然好,但也要看人用得好不好。
我一直在思考一个问题:现在微服务如此流行,API Gateway如何配合好?我们得再考虑一下。

如何利用PHP快速搭建微信小程序后端API

嘿嘿,这个过程看起来很完整,但是在实际操作中,你要注意很多细节。
让我经历一下并告诉你一些真实的事情。

必须存在于第一个区域。
你必须有一个服务器。
到2 02 2 年,更多的人将使用更便宜的阿里云。
获取云服务器,Linux系统,推荐CentOS。
然后安装PHP,最好是PHP7 .4 ,这个版本还是稳定的。
安装 Apache 或 Nginx,具体取决于您的习惯。
我这里用的是Nginx。
安装后,您需要安装扩展。
必须安装 Mysqli 才能连接到 MySQL。
还安装了 Curl。
微信需要使用该接口。
要确定是否可以从命令行使用 PHP,您需要在终端中输入 php -v,将会显示版本号。

然后是数据库,MySQL。
您必须设计表的结构。
例如,user表中的字段id、open、nickname、phone、phone必须加密存储。
当微信回调用户信息时,加密的数据会交给你,你必须解密。
order_table、order_id、user_id(对应用户表)、金额、状态('已付款'、'未付款'等)。
建表后,通过SQL脚本运行它以完成初始结构。

下一步是编写 API。
登录界面,这个是最重要的。
小程序转来的代码。
您需要使用此代码进入微信登录界面更改openid和session_key。
该接口为https://api.weixin.qq.com/sns/jscode2 session?appid=YOUR_APPID&secret=YOUR_APPSECRET&js_code=YOUR_CODE&grant_type=authorization_code。
切换回来后,您需要像使用 JWT 一样创建自定义登录场景。
您必须自己编写或使用现成的库。
然后将打开并生成的 JWT 令牌返回给 Apple。
注意,不要随意给出session_key,这是敏感的。

用户信息接口,小程序转发开放。
可以查看用户表,根据打开情况了解用户信息。
可以给出昵称和头像。
手机号码等敏感信息在共享前必须解密。
微信发送的手机号码是经过加密的。

业务逻辑接口,例如订单请求。
小程序转发用户的持仓。
按开盘顺序表检查并返回订单详细信息。
这就需要分页和限制绕过等分页功能。
支付接口比较复杂。
您需要引入微信支付SDK,生成预付费订单,并将prepaid_id和business_type返回给小程序。
然后激活小程序支付。
支付完成后,微信会向您发送异步通知。
您必须处理此通知,获取相关订单并将其更改为“已付款”状态。

编辑的时候肯定可以使用Postman。
尝试不同的场景,比如传递空代码,看看登录界面是否崩溃。
无法连接数据库?它返回 5 00 错误。
测量结果有误吗?它返回 4 00 错误。
你必须考虑这一切。

PHP确实易于使用并且拥有庞大的生态系统。
您可以找到一切就绪的图书馆。
大小也不错,但是并发量大的时候就需要加缓存或者使用队列什么的。
你应该注意安全。
必须使用HTTPS,否则传输过程中数据会暴露。
对于数据库访问,最好使用准备好的语句来防止SQL注入。
加密敏感数据是强制性的。

这是一个综合的过程。
正确编写代码时,您必须花时间。
我在写作时犯了很多错误。
也许我有点极端,觉得某些步骤需要特别小心。
总之,一步一步来,调整好,就可以了。