Phalapi2.x 如何使用 source 通过 header 传参数

做接口服务时候。有些场景会使用header 来传递参数。 查看官网文档说明
数据来源 source
指定当前单个参数的数据来源,可以是post、get、cookie、server、request、header、或其他自定义来源。未指定时,默认为统一数据源。

目前支持的source与对应的数据源映射关系如下:

1.png

 
本次我使用header 时 ,发现 一直校验失败。过程如下

1  ./config/app.php  里边  apiCommonRules 设置应用层统一参数
  'apiCommonRules' => array(
//签名
'sign' => array(
'name' => 'sign', 'require' => true,"source"=>'header',
),

),
报错: 

2.png

 
排查过程: 

1   打开文件   ./vendor/phalapi/kernal/src/Request.php 
 

3.png

 
打断点, 通过比对  $data 和 $rule   , 发现 大小写问题。

4.png

 
查看底层代码

  ./vendor/phalapi/kernal/src/Request.php 
 

5.png


6.png

 
 ./vendor/phalapi/kernal/src/Request/Parser.php 

7.png

 
发现。这是PHP 接收 header 时候。首字母都会是大写

 

 解决办法: 

./config/app.php  里边  name 值首字母改为大写  即可
  'apiCommonRules' => array(
// //签名
'sign' => array(
'name' => 'Sign', 'require' => true,"source"=>'header',
),
),

验证: 

9.png

 
 

0 个评论

要回复文章请先登录注册