- ประเด็นคือ client ส่งค่าแบบ json body มา content-type เป็น application/json
- ใน slim 3 การรับที่ฝั่ง method ก็ง่ายๆ คือ สมมุติเราส่ง json body เป็น
{"user":"a", "age":4}
- การรับค่าที่ฝั่ง method ใน slim framework 3 จะประมาณนี้
$data = $request->getParsedBody();
$tmp = $data["your_param_name"];
return $response->withJson($result, 200);
- แต่ใน ฝั่ง Slim 4 ต้องเพิ่มคอนฟิกประมาณนี้ใน index.php หรือ ใน routes.php
$app->addBodyParsingMiddleware();
$app->addRoutingMiddleware();
$app->addErrorMiddleware(true, true, true);
$data = $request->getParsedBody();
// $data = array('name' => 'Bob', 'age' => 40);
$payload = json_encode($data);
$response->getBody()->write($payload);
return $response->withHeader('Content-Type', 'application/json')->withStatus(200);
Ref
- https://www.slimframework.com/docs/v4/middleware/body-parsing.html
- https://www.slimframework.com/docs/v4/objects/response.html#returning-json