2017-06-02 10 views
0

Laravel 5.4の基本的なCRUD操作のためのREST APIを実装しようとしています 私は以下のようなpostメソッドを持っています。Laravel Rest API:投稿要求のための関数を実装する方法

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

私はdata.Iを格納しても問題はありません検証のためのいくつかのルールを持っていると私は勉強したいStoreReportRequest class.Whatを経由して検証を行うには、私はPOSTリクエストの後に応答を処理する方法です。たとえば、検証に失敗した場合や何か例外が発生した場合、私は何を返すべきか、どのようにすべきかを示します。私はいくつかの研究を行ったが、適切な答えを見つけることができなかった。どんな助けもありがとう。

+0

正直言って、それはあなた次第です。 422応答ステータスコードとバリデータからの検証エラーが必要な場合がありますが、REST APIをどのように使いたいかによってまったく異なります。 – Jamesking56

+0

@ Jamesking56初心者として私はちょうどベストプラクティスになるだろうと思っています – Tartar

+0

純粋に意見の問題です。私の見地からすれば、良い考えは、422のステータスコードを使用し、応答内容として検証エラーを追加する@Sandeeshの答えに従うことです。 '{success:false、errors:[]}'のようなものです。その後、クライアントは422のステータスコードを検出し、内容を見て何が間違っているかを具体的に見ることができます。 – Jamesking56

答えて

0

まあ、私は通常、すべてが正しくあなたがこれを行うことができます行われた場合のJSONウィッヒでの応答は、あなたの関数の最後に、解析することは必ずしも容易で行います

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

何らかの理由

のために失敗した場合
return response()->json(["response" => false, errors => ["This can be an array or whatever"] ]); 
0

検証では、ステータスコード422のエラーメッセージを含むjson応答が返されます。したがって、検証エラーの例外について心配する必要はありません。

レポートを作成した後にやりたいことは、あなたのことです。新しく作成したレポートでjson応答を返すか、ステータスコード200(デフォルトで設定)の成功メッセージを送信することができます。

Laravelはほとんどの作業を行い、API要件に基づいてレスポンスを定義するだけです。

関連する問題