laravelでAPIを作成する

未分類


ルーティングを作成する

ルーティングはwebの場合には、 routes\web.phpに記載しますが
apiの場合はroutes\api.phpに記載します。

api.phpに記載したルーティングは\api\配下になります。

laravelのAPIでのSQL確認

ddで普通に見る事ができる。laravel便利。

    $result = Live::all()->toSql();

    dd($result);

APIでJSONデータを返す場合

jsonで単一データを戻す場合

    public function index()
    {
        try {
            $live = Live::first();
            $result = [
                'id' => $live->id,
                'name' => $live->name,
            ];
        } catch (\Exception $e) {
            $result = [
                'result' => false,
                'error' => [
                    'messages' => [$e->getMessage()]
                ],
            ];
            return $this->resConversionJson($result, $e->getCode());
        }
        return $this->resConversionJson($result);
    }

    private function resConversionJson($result, $statusCode = 200)
    {
        if (empty($statusCode) || $statusCode < 100 || $statusCode >= 600) {
            $statusCode = 500;
        }
        return response()->json($result, $statusCode, ['Content-Type' => 'application/json'], JSON_UNESCAPED_SLASHES);
       
    }

jsonで複数配列を返す場合

    public function index()
    {
        try {
            $lives = Live::all();

            $result[] = array();
            $count = 0;
            foreach ($lives as $live) {

                $result[$count] = [
                    'id' => $live->id,
                    'name' => $live->name,
                ];
                $count++;
            }
        } catch (\Exception $e) {
            $result = [
                'result' => false,
                'error' => [
                    'messages' => [$e->getMessage()]
                ],
            ];
            return $this->resConversionJson($result, $e->getCode());
        }
        return $this->resConversionJson($result);
    }