Laravel 9에서 REST API를 만드는 방법

라라벨 9에서 REST API 만들기



오늘은 라라벨 9에서 REST API를 만드는 방법에 대해 설명하겠습니다. 이번 영상에서는 REST API를 이용한 CRUD Operation에 대해 설명하겠습니다.

라라벨 9 설치.



그런 다음 Editor에서 코드를 엽니다.

1 단계



마이그레이션으로 모델Post을 생성합니다.

php artisan make:model Post -m


다음 업데이트 마이그레이션 파일은 database/migrations 폴더에 있습니다.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->longText('description');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('posts');
    }
};



다음으로 Model fillable 속성을 업데이트합니다app/models/Post.php.

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasFactory;

    protected $fillable = ['title', 'description'];
}



2 단계



이제 명령을 실행하여 컨트롤러 생성

php artisan make:controller Api\\PostController --model=Post


이 명령은 app/Http/Controllers/Api/PostController.php에 파일을 생성합니다.

파일을 열고 아래 코드를 업데이트합니다.

<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Requests\StorePostRequest;
use App\Models\Post;
use Illuminate\Http\Request;

class PostController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $posts = Post::all();

        return response()->json([
            'status' => true,
            'posts' => $posts
        ]);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(StorePostRequest $request)
    {
        $post = Post::create($request->all());

        return response()->json([
            'status' => true,
            'message' => "Post Created successfully!",
            'post' => $post
        ], 200);
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Post  $post
     * @return \Illuminate\Http\Response
     */
    public function show(Post $post)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\Post  $post
     * @return \Illuminate\Http\Response
     */
    public function edit(Post $post)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Post  $post
     * @return \Illuminate\Http\Response
     */
    public function update(StorePostRequest $request, Post $post)
    {
        $post->update($request->all());

        return response()->json([
            'status' => true,
            'message' => "Post Updated successfully!",
            'post' => $post
        ], 200);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\Post  $post
     * @return \Illuminate\Http\Response
     */
    public function destroy(Post $post)
    {
        $post->delete();

        return response()->json([
            'status' => true,
            'message' => "Post Deleted successfully!",
        ], 200);
    }
}


3단계



이제 아래 명령을 실행하여 데이터 유효성 검사 요청을 생성해 보겠습니다.

php artisan make:request StorePostRequest


이제 app/Http/Requests/StorePostRequest.php에서 파일을 열고 아래 코드를 업데이트합니다.

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class StorePostRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            "title" => "required|max:70",
            "description" => "required"
        ];
    }
}


4단계



이제 routes/api.php에서 API 경로를 생성합니다.

<?php

use App\Http\Controllers\Api\PostController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;


Route::apiResource('posts', PostController::class);



이제 애플리케이션을 제공하고 우편 배달부에서 URL을 엽니다.
결과는 다음과 같습니다.









전체 자습서는 비디오 아래에 있습니다.



REST API를 만드는 동안 문제가 발생하면 쿼리를 댓글로 남겨주세요.

읽어 주셔서 감사합니다

나에게 연락하십시오.

좋은 웹페이지 즐겨찾기