【Laravel】簡易API実装②

ヤマモト

2024.09.09

0

こんにちは、山本です。

今回はLaravelでの簡単なAPIについて実践してみました。

前回からの続きで、コントローラーに処理を追加して動作確認しました。

APIとは

Application Programming Interfaceの略称であり、アプリケーションやソフトウェアをつなぐためのインターフェースです。

route確認

php artisan route:list




コントローラーに処理を追加 (BlogController.php)

一覧表示

・indexメソッドを編集

  public function index()
  {
    $blogs = Blog::all();
    return response()->json([
      'status' => true,
      'blogs' => $blogs
    ], 200);
  }


・postmanから動作確認

特定のidのデータを表示

・showメソッドを編集

    public function show(string $id)
    {
        $blogs = Blog::find($id);
        if($blogs){
            return response()->json([
                'message'=> 'Blog found',
                'data' => $blogs
            ], 200);
        } else {
            return response()->json([
                'message'=> 'Blog not found',
            ], 404);
        }
    }


・postmanから動作確認

指定したidが存在する場合


指定したidが存在しない場合

特定のidのデータを更新

・updateメソッドを編集

    public function update(Request $request, string $id)
    {
        $update = [
            'title' => $request->title,
            'content' => $request->content
        ];
        $blog =  Blog::where('id', $id)->update($update);
        $blogs = Blog::all();
        if ($blog) {
            return response()->json([
                'message'=> 'Blog update',
                'data' => $blogs
            ], 200);
        } else {
            return response()->json([
                'message' => 'Blog not found',
            ], 404);
        }


・postmanから動作確認

title : 「タイトル更新」

content : 「内容更新」

特定のidのデータを削除

・destroyメソッドを編集

    public function destroy(string $id)
    {
        $blog = Blog::where('id', $id)->delete();
        if ($blog) {
            return response()->json([
                'message' => 'Blog deleted successfully',
            ], 200);
        } else {
            return response()->json([
                'message' => 'Blog not found',
            ], 404);
        }
    }


・postmanで動作確認(id=1を削除)


・A5SQLでid=1のデータが削除されていることを確認。



まとめ

今回はLaravelを使用して簡易的なAPIを実装してみました。

この記事をシェアする