چگونه API های RESTful ایجاد می کنید؟ اگر به دنبال ساخت یک API RESTful با استفاده از لاراول هستید، این مقاله عالی را دنبال کنید. اگر تازه با لاراول شروع به کار کردید، حتما یک روز به API نویسی و ارتباط به صورت API را باید حتما در پروژه های خود انجام دهید.
اگر به دنبال ایجاد یک رابط واحد بین داده های خود و کلاینت خود هستید، استفاده از یک API RESTful شاید بهترین گزینه باشد. امروزه، بسیاری از وبسایتها از فریمورکهای جاوا اسکریپت فرانتاند مانند React.js یا Vue.js استفاده میکنند که لازم است backend مقداری RESTful API داشته باشد. البته با استفاده از Inertia.js می توانید بدون استفاده از API با بک اند در ارتباط باشید.
API های RESTful همچنین برای برنامه های تلفن همراهی که از یک رابط برنامه نویسی برنامه کاربردی Backend (API) برای انجام اقدامات از طرف یک کاربر استفاده می کنند، مورد نیاز است. همچنین برای ارائه تکنیک های یکپارچه سازی برای سیستم های شخص ثالث به API های RESTful نیاز دارید.
چگونه API های RESTful ایجاد می کنید؟ یکی از راه های راحت استفاده از لاراول است که یک فریمورک PHP است که در تلاش برای صرفه جویی در زمان توسعه دهندگان است. لاراول بیشتر برای توسعه برنامه های وب سفارشی با استفاده از PHP استفاده می شود. همچنین پیشرفت در وب را هدف قرار داده است و قبلاً ویژگی ها و مفاهیم جدید متعددی را در دنیای توسعه وب جذب کرده است، از جمله صف ها، ارتباطات realtime، احراز هویت API خارج از جعبه و موارد دیگر.
در این مقاله، نحوه ایجاد یک API ساده RESTful در لاراول را یاد خواهید گرفت. و در این مقاله نیز بهترین روش ها در لاراول API یاد خواهید گرفت. اما ابتدا، بیایید نگاهی بیندازیم که RESTful API چیست.
RESTful API چیست؟
RESTful مخفف عبارت Representational State Transfer است. این یک نوع API است که به برنامه های وب سرویس کمک می کند تا با یکدیگر ارتباط برقرار کنند.
درست مانند همه API های دیگر، API های RESTful نیز به انتقال داده ها بین کاربران و برنامه ها کمک می کنند. به عنوان مثال، هنگامی که وارد یک وب سایت می شوید یا به یک برنامه در تلفن خود دسترسی پیدا می کنید، یک API به سرور کلاینت شما کمک می کند تا با سرور میزبان ارتباط برقرار کند.
برنامه های ادغام شده با API های REST کاملاً با هم مرتبط نیستند. هر برنامه کاربردی با تعاریف و فرمت های داده استفاده شده توسط برنامه دیگر آشنا نیست. اگر با GraphQL آشنا هستید و می خواهید از آن در لاراول استفاده کنید، این مقاله را بررسی کنید.
چهار متد متداول HTTP که توسط API های RESTful پشتیبانی می شوند عبارتند از:
GET - برای بازیابی منابع
POST- برای ایجاد منابع
PUT - برای به روز رسانی منابع روی سرور
DELETE - برای حذف منابع
برای آشنایی با نحوه طراحی API تمیز و خوب این مقاله را بررسی کنید.
نحوه ایجاد API های RESTful در لاراول
بیایید نگاهی به روند گام به گام ایجاد یک REST API در لاراول بیندازیم.
1. یک پروژه جدید لاراول ایجاد کنید
با استفاده از دستور زیر می توانید یک پروژه جدید ایجاد کنید. می توانید با هر نام دیگری برای پروژه خود جایگزین کنید.
composer create-project laravel/laravel my-api
پکیج Laravel API را نصب کنید:
composer require laravel/passport
پیکربندی پاسپورت را با دستور زیر ایجاد کنید:
php artisan passport:install
2. پایگاه داده را پیکربندی کنید
مرحله بعدی پیکربندی پایگاه داده برای برنامه شما است. اگر پایگاه داده ای ندارید باید یک پایگاه داده جدید ایجاد کنید.
پس از ایجاد پایگاه داده، فایل env. را از دایرکتوری ریشه پروژه خود باز کنید. اگر پروژه فایل env. را ندارد، باید محتوا را از env.example. کپی کنید و یک فایل ایجاد کنید. چندین متغیر محیطی رایج در فایل env. تعریف شده است.
در کد های زیر پیکربندی واقعی خود جایگزین کنید.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=anophel
DB_USERNAME=root
DB_PASSWORD=
3. مدل ها و migration
بعد، ما یک مدل و migration ایجاد می کنیم. این مدل البته به صورت دیفالت مدل زیر در پوشه models وجود دارد.
حال اگر نبود برای ایجاد مدل User
، این کد را دنبال کنید:
php artisan make:model User -m
سپس کنترلر زیر را ایجاد کنید با دستور زیر :
php artisan make:controller Api/UsersController --api
4. ایجاد Route ها
محل تعریف route های API نباید در web.php بنویسید و باید آن ها را در فایل دیگری به اسم api.php بنویسید.
پس فایل routes/api.php را باز کنید و مسیرهای زیر را اضافه کنید:
Route::get('users', [Api\UsersController::class, 'index']);
Route::post('users', [Api\UsersController::class, 'store']);
Route::get('users/{user}', [Api\UsersController::class, 'show']);
Route::put('users/{user}', [Api\UsersController::class, 'update']);
Route::delete('users/{user}', [Api\UsersController::class, 'destroy']);
5. پیاده سازی متد های کنترل کننده
حال متد های CRUD را باید بنویسیم، البته بهتر است کنترلر های خود را در پوشه ای به اسم Api قرار دهید تا مدیریت فایل های پروژه راحت تر باشد.
متدهای زیر را در کلاس Api\UsersController
پیاده سازی کنید:
public function index()
{
return User::all();
}
public function store(Request $request)
{
$user = User::create($request->all());
return response()->json($user, 201);
}
public function show(User $user)
{
return response()->json($user);
}
public function update(Request $request, User $user)
{
$user->update($request->all());
return response()->json($user);
}
public function destroy(User $user)
{
$user->delete();
return response()->json(null, 204);
}
سرور توسعه را راه اندازی کنید:
php artisan serve
6. تست API
می توانید از ابزاری مانند Postman یا سواگر برای تست API استفاده کنید. برای آشنایی کامل با سواگر این مقاله را می توانید بررسی کنید.
مثال:
برای ایجاد یک کاربر جدید، باید یک درخواست POST به نقطه پایانی users/ با body زیر ارسال کنید:
{
"name": "John Doe",
"email": "john.doe@example.com",
"password": "password"
}
اگر درخواست موفقیت آمیز باشد، یک پاسخ JSON با کاربر تازه ایجاد شده دریافت خواهید کرد.
برای بازیابی همه کاربران، باید یک درخواست GET به نقطه پایانی users/ ارسال کنید.
برای بازیابی یک کاربر خاص، باید یک درخواست GET به نقطه پایانی users/{user}/ ارسال کنید، جایی که {user} شناسه (id) کاربر است.
برای به روز رسانی یک کاربر، باید یک درخواست PUT به نقطه پایانی users/{user}/ با اطلاعات کاربر به روز شده در بدنه ارسال کنید.
برای حذف یک کاربر، باید یک درخواست DELETE به نقطه پایانی users/{user}/ ارسال کنید.
نتیجه
فریمورک لاراول ایجاد سریع API قدرتمند و امن REST را آسانتر کرده است. استفاده از دستور منبع، فرآیند مسیریابی را با افزودن خودکار تمام مسیرهای شناخته شده به برنامه ساده می کند. این چارچوب همچنین وابستگی هایی را برای مدیریت استثنا و خطا فراهم می کند، بنابراین می توانید هر گونه باگ را ردیابی و برطرف کنید.