2017-11-01 1 views
0

私は経験豊かなLumen/Laravel開発者から次の課題に向かって指針を探しています。すべての応答は単一の出口ポイントから行う

私はLumenを使用して小さなAPIをコーディングしていますが、JSONを返す際に問題はありませんが、返すすべてのメソッドにreturn response()->json(['name' => 'Abigail', 'state' => 'CA']);を入れたくありません。

後ですべてのエンドポイントにtoken => 'secret'を追加する必要があるビジネスケースがある場合はどうなりますか?だから私は一点の出口を持って、これを達成するために何が最善であるか疑問に思っています。

ミドルウェア?それが返される直前のすべてを傍受することは可能ですか?ミドルウェアを終了できることはわかっていますが、レスポンスがブラウザに送信された後に実行されています。

私は自分のヘルパーを書くという選択肢を見ていますか、それともこのニーズをサポートするLumen/Laravelのコア機能はありますか?

答えて

0

Laravelはレスポンスマクロをサポートしているため、任意の方法でレスポンスを変更できます。

あなたはここで、このためのドキュメントを見つけることができます。https://laravel.com/docs/5.5/responses#response-macros

これを基本的にあなたが選択したほとんどどのような方法で、マクロを呼び出す任意の応答を変更することができます。あなたのリクエストにトークンを追加したい場合は、あなたのアプリで応答を返すときに使用

だから、その後、

public function boot() 
{ 
    Response::macro('myresponse', function ($value) { 
     $token = getTokenFromSomwehere(); 
     return Response::make([ 
      'token' => $token, 
      'user' => $value['user'], 
      etc... 
     ]); 
    }); 
} 

を行うことができreturn response()->myresponse($values)

関連する問題