我试图从Swagger UI向我的服务器(Lumen)发出POST请求,但每次我只是得到一个空数组。
Swagger UI请求:
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \
"stocks":[ \
{ \
"contract-number":0, \
"metal-id":0, \
"amount":0, \
"unit":"string" \
} \
] \
}' 'http://backend.mywebsite.de/v1/stocks'
我的控制器:
...
public function stocksPost(Request $request)
{
dd($request->all());
}
...
输出:
/var/www/vhosts/localhost/htdocs/vendor/illuminate/support/Debug/Dumper.php:23:
array(0) { }
但如果我向Postman发送相同的请求,一切正常:
/var/www/vhosts/localhost/htdocs/vendor/illuminate/support/Debug/Dumper.php:23:
array(1) {
'stocks' =>
string(68) "[{"contract-number": 0,"metal-id": 0,"amount": 0,"unit": "string"} ]"
}
我没有解决我的问题,有人可以向我澄清一下吗?
答案 0 :(得分:1)
Swagger请求的问题在于它以双引号发送我的数据,因为它不能被验证为JSON,并且只能从php://输入作为字符串获得。我只是使用自己的curl请求解决了这个问题,我将JSON数据放入单引号中或将其作为外部文件附加。
curl -X POST -d @foo/bar/contractsPayload.json http://backend.mywebsite.de/v1/stocks -H 'Content-Type: application/json' -H 'Accept:application/json'