LaravelでAPIを作っています。
Api呼び出し→ルーティング→コントローラー→サービスクラス→モデル、IF等→サービスクラス→コントローラー→API呼び出し元に値を返却できればと思いますが、
サービスクラス内でエラーが起きた場合、下記のパターン
Api呼び出し→ルーティング→コントローラー→サービスクラス→モデル、IF等→サービスクラス→API呼び出し元
サービスクラスのJsonレスポンスをAPI呼び出し元に返却可能でしょうか。
以上、宜しくお願い致します。
ソースがないとわからないとのことなのでサンプルです。
ルーティング
Route::post('/service', 'AbcController@select');
コントローラー
class AbcController extends Controller { protected Abc $Abc ; public function __construct(Abc $abc) { $this->Abc = $Abc ; } public function select(Request $request) { $json = Service::sample($this->Abc, $request); return response()->json(json , 500, [], JSON_UNESCAPED_UNICODE); } }
サービスクラス
class Service { public static function sample(Abc $abc, $request) { //IDをキーに管理テーブルからレコード取得 $def = $abc->findByIdXXXX($request->input('xxxx_id')); //例外キャッチされたか判定 //コレクションならfalse、stringならtrue if(is_string($def) === false) { return $def; } Log::critical('', ['request' => $request], ['message' => $def]); //エラー //ここからAPI呼び出し元にJsonレスポンス返却したい //通常リターンならばコントローラーに返るから return response()->json(null, 500, [], JSON_UNESCAPED_UNICODE); } }
実際のコードがないとなんとも言えないのでは。
回答1件
あなたの回答
tips
プレビュー