Backbone and Laravel API


Backbone and Laravel API

有几个问题,我似乎无法找到明确的答案,我目前正在研究一个RESTful api,它将及时与少数客户端设备交互,目前我正在集中精力,在api上,以及与之配套的web应用程序。

api位于http://api.local, web应用程序位于http://webapplication.local。这个web应用程序是一个带有Backbone前端的Laravel安装。

我试图将一些数据从主干保存到API的数据库。API保存方法是这样的

public function store()
{
    $user_details = Input::all();
    $user = new User;
    $user->firstname = $user_details['firstname'];
    $user->surname = $user_details['surname'];
    $user->email = $user_details['email'];
    $user->password = Hash::make($user_details['password']);
    $user->remember_token = '';
    $user->save();
    return Response::json($user_details, 200);
}

它的路线是这样的

Route::group(['prefix' => 'api/v1'], function(){
   Route::get('users', 'UsersController@index');
   Route::get('users/{id}', 'UsersController@get');
   Route::post('users/create', 'UsersController@store');
   /**
   * PUT request to edit the database record
   * @todo: Need to be a PUT request in the long run
   */
   Route::post('users/update/{id}', 'UsersController@update');
   /**
   * DELETE request to edit the database record
   * @todo: Need to be a DELETE request in the long run
   */
   Route::post('users/delete/{id}', 'UsersController@delete');
});

在前端(web应用程序)我像这样保存一个模型,

saveNewUser: function(e) {
    e.preventDefault()
    var data = this.$el.find('.js-create-new-user').serializeJSON();
    // create a new model
    var User = new app.User();
    User.save(data, {
        success: function(model, response){
            console.log(model);
            console.log(response);
            console.log("sucess");
        },
        error: function(model, response) {
            console.log(model);
        },
        wait:true
    });
}

向web应用程序发送一个POST请求。Local/users/create方法,就像这样,

public function create()
    {
        $data = Input::all();
        $curl = new Curl'Curl();
        $curl->post('http://pops.local/api/v1/users/create', $data);
        if ($curl->error) {
            return Response::json($curl->error, $curl->error_code);
        }
        else {
          return Response::json($curl->response, 200);
        }
    }

如果我查看$curl->response,然后我看到正在发送的数据对象-我假设这意味着cURL请求已成功发送。然而,没有得到更新在API的数据库?

我做错了吗?Backbone是否应该直接向API发送/发出请求,并让PHP在web应用程序后面做API不做的事情,例如调整图像大小等?

您可以直接从主干发送请求,但您不必这样做。一切看起来都很好。检查从$user->save();返回的内容,如下所示:

dd($user->save());

你应该得到true如果一切正常,false如果有任何错误。