在slim 2中支持POST数据和JSON格式的请求

时间:2015-10-23 12:59:16

标签: php json slim

我正在维护一个用苗条2编写的后端API。api主要用于移动应用程序,因此我希望从发送请求作为POST数据切换到发送JSON格式化的字符串。这将简化api,因为当前正在发送数组的应用程序,甚至json字符串作为后期数据变量。

虽然发布移动应用程序的更新并切换到json格式的POST请求很简单,但后端api必须继续支持这两种格式,直到所有用户都更新其应用程序为止。

我希望有$app->request->post()的替换函数,它将从post数据或json数据中获取请求参数,具体取决于客户端发送的内容类型。

例如,我使用$app->request->post('user_id', 0);从帖子数据中获取变量。

got安装到我的api中,它确实将json主体转换为数组。问题是现在我的每个api函数都必须检查$app->json_body数组或$app->request->post函数来检索请求参数。

例如:

$app->get('/settings', function () use($app, $freeze)
{
   if ($app->json_body != null) {
      $user_id = $app->json_body['user_id'];
   } else {
      $user_id = $app->request->post('user_id', 0);
   }
}

创建一个完成此功能的全局函数非常困难,但我希望在苗条的$app实例上具有该功能。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用https://github.com/slimphp/Slim-Middleware并确保带有JSON正文的请求包含正确的Content-Type: application/json标头。