2015-10-23 23 views
4

JSON格式的请求都我维持写入苗条2.后端API所述API是主要用于通过移动应用程序,所以我希望从发送请求作为POST数据发送到切换JSON格式化的字符串。这将简化api,因为当前正在发送数组的应用程序,甚至json字符串作为后期数据变量。支持POST数据,并在超薄2

尽管向移动应用发布更新并切换到json格式的请求很简单,但后端API必须持续支持这两种格式,直到所有用户都将更新其应用。

我正在寻找一个$app->request->post()的替代函数,它将根据发布数据或json数据获取请求参数,具体取决于客户端发送的内容类型。

例如,使用$app->request->post('user_id', 0);来从柱数据的变量IM。

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); 
    } 
} 

这几乎straigtward创建一个全局函数,这样做,但我希望有苗条的$app实例功能。

+1

只需要创建一个新的URL结构,如'API/V2/.....' – Steve

+1

我没有尝试,但我认为你可以编写自己的中间件添加JSON身体属性的请求。这个中间件应该在你已经拥有的JSON请求中间件之后调用。如果你检查'Slim \ Http \ Request :: post'的源代码,你会发现你可能需要将你的JSON属性写入'$ this-> env ['slim.request.form_hash']'变量,作为一个数组。 –

回答