ایجاد RESTful API با لاراول
- تاریخ انتشار: 1403/07/04
طراحی سایت با لاراول که Laravel از محبوبترین فریمورکهای PHP است که به دلیل سادگی، سرعت بالا و انعطافپذیری، انتخاب اول بسیاری از توسعهدهندگان برای پروژههای مختلف از جمله ایجاد APIها است. در این مقاله، به آموزش ایجاد یک RESTful API با استفاده از Laravel خواهیم پرداخت. هدف این است که شما با اصول اولیه ایجاد یک API، ساختار و پیادهسازی در لاراول آشنا شوید و در پایان بتوانید یک API ساده اما کاربردی ایجاد کنید.
RESTful API چیست؟
REST (Representational State Transfer)یک سبک معماری برای ارتباطات شبکهای است که بهویژه برای سیستمهای توزیعشده مانند وب سرویسها طراحی شده است. RESTful API به معنای پیادهسازی این اصول و معماری در APIها است. یک API که با اصول REST طراحی شده باشد، RESTful API نامیده میشود.
اصول REST شامل موارد زیر است:
- Stateless (بدون حالت) : هر درخواست به سرور باید بهصورت مستقل از دیگر درخواستها باشد و سرور نباید هیچ اطلاعاتی از وضعیت قبلی درخواستها داشته باشد.
- Client-Server: کلاینت و سرور باید از هم جدا باشند و ارتباط آنها فقط از طریق API انجام شود.
- Cacheable (قابل کش): پاسخهای سرور باید قابل کش باشند تا از بار اضافی روی سرور جلوگیری شود.
- Uniform Interface : API باید یک رابط یکپارچه داشته باشد و مسیرها و متدها بهطور مشخص برای انجام وظایف خاص تعریف شوند.
چرا لاراول برای ایجاد RESTful API مناسب است؟
لاراول ابزارها و پکیجهای متعددی برای پیادهسازی API ارائه میدهد. این ابزارها کار توسعهدهنده را سریعتر و سادهتر میکنند. از مزایای استفاده از Laravel برای ایجاد API میتوان به موارد زیر اشاره کرد:
- Eloquent ORM: لاراول دارای یک ORM قوی به نام Eloquent است که به شما اجازه میدهد بهسادگی با پایگاه داده کار کنید.
- Middleware: استفاده از Middlewareها در لاراول به شما این امکان را میدهد که اعتبارسنجی، احراز هویت و دسترسیها را مدیریت کنید.
- Routing: سیستم قدرتمند Routing در لاراول به شما این امکان را میدهد که مسیرهای API خود را بهسادگی مدیریت و سازماندهی کنید.
- API Resources: لاراول ابزار API Resource را ارائه میدهد که به شما کمک میکند دادههای خود را بهصورت JSON یا هر فرمت دلخواه دیگر ارسال کنید.
مراحل ایجاد RESTful API در لاراول
1. نصب لاراول
برای شروع، ابتدا باید لاراول را نصب کنید. ابتدا اطمینان حاصل کنید که Composer روی سیستم شما نصب است. سپس با استفاده از دستور زیر، یک پروژه لاراول جدید ایجاد کنید:
composer create-project --prefer-dist laravel/laravel my-rest-api
با این دستور، یک پروژه لاراول با نام "my-rest-api" ایجاد میشود. حال وارد دایرکتوری پروژه شوید:
cd my-rest-api
2. پیکربندی پایگاه داده
در فایل `.env` تنظیمات پایگاه داده را مشخص کنید. اگر از MySQL استفاده میکنید، اطلاعات اتصال به دیتابیس را در این فایل وارد کنید:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_database
DB_USERNAME=root
=DB_PASSWORD
پس از تنظیم اطلاعات پایگاه داده، حال باید جداول مورد نیاز را ایجاد کنیم.
3. ایجاد مدل و مایگریشن
فرض کنید میخواهیم یک API برای مدیریت مقالات (posts) بسازیم. ابتدا مدل و مایگریشن مربوط به جدول مقالات را ایجاد میکنیم:
php artisan make:model Post -m
دستور بالا یک مدل به نام `Post` و یک فایل مایگریشن برای ایجاد جدول مقالات در دیتابیس ایجاد میکند. حال فایل مایگریشن را در مسیر `database/migrations` ویرایش کنید:
() public function up
}
} Schema::create('posts', function (Blueprint $table)
;()table->id$
;table->string('title')$
;table->text('content')$
;()table->timestamps$
;({
{
سپس مایگریشنها را با دستور زیر اجرا کنید تا جدول مقالات ایجاد شود:
php artisan migrate
4. ایجاد کنترلر
برای مدیریت مقالات، نیاز به یک کنترلر داریم که درخواستهای مربوط به مقالات را پردازش کند. دستور زیر یک کنترلر ایجاد میکند:
php artisan make:controller PostController --resource
با افزودن فلگ `--resource`، لاراول بهطور خودکار متدهای CRUD (Create, Read, Update, Delete) را در کنترلر ایجاد میکند.
5. تعریف مسیرهای API
حال باید مسیرهای API را تعریف کنیم. برای این منظور، فایل `routes/api.php` را باز کرده و مسیرهای مربوط به مقالات را اضافه کنید:
;use App\Http\Controllers\PostController
;Route::apiResource('posts', PostController::class)
با این دستور، تمامی مسیرهای لازم برای CRUD مربوط به مقالات بهطور خودکار ایجاد میشوند.
6. پیادهسازی متدهای CRUD
حال باید متدهای مختلف برای عملیاتهای CRUD را در کنترلر پیادهسازی کنیم. بهطور مثال، برای ایجاد یک مقاله جدید (POST)، متد `store` بهصورت زیر پیادهسازی میشود:
public function store(Request $request)
}
])validatedData = $request->validate$
,'title' => ‘required|max:255’
,'content' => 'required’
;([
;post = Post::create($validatedData)$
])return response()->json
,'!message' => 'Post created successfully!’
post' => $post'
;(201 ,[
{
در این متد، ابتدا دادههای ورودی اعتبارسنجی میشوند و سپس مقاله جدید ایجاد میشود. پاسخ بهصورت JSON ارسال میشود.
7. استفاده از API Resource
برای مدیریت بهتر پاسخهای API و فرمتدهی به آنها، میتوان از API Resources استفاده کرد. برای این کار، ابتدا یک Resource ایجاد میکنیم:
php artisan make:resource PostResource
سپس کلاس `PostResource` را ویرایش کرده و نحوه فرمتدهی دادهها را مشخص میکنیم:
public function toArray($request)
}
] return
,id' => $this->id'
,title' => $this->title'
,content' => $this->content'
,()created_at' => $this->created_at->toDateTimeString'
,()updated_at' => $this->updated_at->toDateTimeString'
;[
{
حال در کنترلر، به جای بازگرداندن مستقیم دادهها، از Resource استفاده میکنیم:
;use App\Http\Resources\PostResource
() public function index
}
;return PostResource::collection(Post::all())
{
با این کار، پاسخهای API بهصورت استانداردتر و با فرمت دلخواه بازگردانده میشوند.
8. احراز هویت API
یکی از مهمترین بخشهای هر API، احراز هویت کاربران است. لاراول از بسته Passport برای مدیریت احراز هویت APIها استفاده میکند. برای نصب Passport، ابتدا دستور زیر را اجرا کنید:
composer require laravel/passport
سپس پکیج را در `config/app.php` رجیستر کرده و دستورات مایگریشن مربوط به Passport را اجرا کنید:
php artisan migrate
php artisan passport:install
در نهایت، در مدل User، کلاس `HasApiTokens` را وارد کنید:
use Laravel\Passport\HasApiTokens;
class User extends Authenticatable
}
;use HasApiTokens, Notifiable
{
9. مدیریت احراز هویت
برای محافظت از مسیرهای API، میتوانید از middleware `auth:api` استفاده کنید. بهطور مثال:
} () Route::middleware('auth:api')->group(function
;Route::apiResource('posts', PostController::class)
;({
با این کار، تنها کاربران احراز هویت شده میتوانند به این مسیرها دسترسی داشته باشند.
ایجاد یک RESTful API با لاراول فرآیندی ساده و در عین حال قدرتمند است. لاراول به توسعهدهندگان این امکان را میدهد تا با استفاده از ابزارهای داخلی مانند Eloquent، Routing، Middleware و API Resources، APIهای استاندارد و کارآمد بسازند. با توجه به نیازهای پروژه و با استفاده از ابزارهایی مانند Passport، میتوان احراز هویت را نیز بهراحتی به API اضافه کرد.
تیم حرفهای دیویژکد با استفاده از تجربه و تخصص خود در توسعه وب و API، قادر است پروژههای متنوعی را با استفاده از بهترین ابزارها و فریمورکها مانند لاراول به بهترین شکل پیادهسازی کند. با رویکردی حرفهای و استفاده از متدولوژیهای مدرن، تیم دیویژکد آماده ارائه خدمات کامل و پیشرفته در زمینه ایجاد APIها و پروژه های طراحی سایت لاراول است.
اگر شما به طراحی سایت اختصاصی نیازمند هستید و برای کسب و کار خود علاقه دارید که سایتی با لاراول راه اندازی کنید میتوانید از طریق فرم سفارش طراحی سایت درخواست بدهید تا تیم مجرب دیویژکد به این موضوع رسیدگی کنند.
بخش نظرات