Laravel Rest API:如何实现post请求的功能

时间:2017-06-02 09:08:14

标签: php laravel web-services rest laravel-5

我正在尝试使用Laravel 5.4为基本的CRUD操作实现REST API 我有一个post方法如下。

public function storeReport(StoreReportRequest $request){

    $inputs = $request->only('company_name',
                             'company_experience',
                             'service_start_time',
                             'service_end_time',
                             'latitude',
                             'longitude',
                             'additional_info',
                             'user_id'
                             );

    //save image content to folder and image name to database
    $image = $request->file('picture');
    $fileName = $image->getClientOriginalName();
    $image->storeAs('images', $fileName);
    $inputs['picture_url'] = $fileName;

    $report = Report::create($inputs);

    return 'success';
}

我在存储数据时没有任何问题。我有一些验证规则,我通过StoreReportRequest类进行验证。我想学习的是如何在POST请求后处理响应。例如,如果验证失败或发生任何异常,我应该返回什么以及应该如何返回。我做了一些研究,但找不到合适的答案。任何帮助,将不胜感激。

2 个答案:

答案 0 :(得分:0)

好吧,我通常在json中做一个响应,总是很容易解析,在你的函数结束时,如果一切都正确完成,你可以这样做:

return response()->json(["response" => true]);

如果由于某种原因失败

return response()->json(["response" => false, errors => ["This can be an array or whatever"]  ]);

答案 1 :(得分:0)

验证将返回带有状态代码为422的错误消息的json响应。因此,您不必担心验证失败异常。

关于创建报告后您想要做什么,取决于您。您可以使用新创建的报告返回json响应,或发送状态代码为200的成功消息(默认设置)。

Laravel为您完成大部分工作,您只需根据API要求定义响应。