در این سری آموزش از ساخت وب سرویس RESTful در php به شما نحوه پیاده سازی REST API CRUD در php یا همان عملیات چهار گانه CRUD (Create,Read,UPDATE,DELETE) نشان دهیم.مثالی مشابه را برای عملیات CRUD در mysql و همچنین نحوه ساخت وب سرویس RESTful در php را قبلا دیدیم.
در این آموزش از سری مقالات وب سرویس REST API , به شما نحوه ساخت وب سرویس REST API برای CRUD را نشان میدهیم . در این آموزش هم مانند مقالات قبلی از هیچ فریمورک خاصی استفاده نمیکنیم .تمام عملیات پیاده سازی با هسته خام php انجام خواهد شد .
خب اجازه بدید در مورد سناریوی عملیات REST API CRUD در php این مقاله صحبت کنیم . اکشن های READ و DELETE با ارسال کلمه کلیدی در URL اجرا می شود و با متد GET دریافت می شود . عملیات ADD و UPDATE نیز با استفاده از متد POST ارسال و دریافت می شود .
پیاده سازی عملیات CREATE و UPDATE با REST API
درخواست های CREATE و UPDATE با مقادیر وارد شده ارسال می شود . درخواست UPDATE در URL دارای ID سطر خاصی که قصد بروزرسانی آن را داریم , است .
بعد از دریافت این درخواست (request) , سرویس REST CRUD کلاس تعریف شده اصلی را برای انجام عملیات insert در دیتابیس فراخوانی می کند . کلاس اصلی یک کوئری insert با استفاده مقادیر ارسال شده میسازد . تصویر زیر به شما نحوه ارسال داده ها با متد POST برای انجام درخواست CREATE یا UPDATE را نشان می دهد.
من از پلاگین Advanced REST Client گوگل کروم برای تست API های REST استفاده میکنم.
عملیات DELETE توسط REST API
URL درخواست DELETE نیز همانند آدرس URL درخواست EDIT یا همان Update است . ID سطری که قصد حذف آن را داریم باید از طزیق URL ارسال شد . پاسخ (response) API بصورت زیر خواهد بود.
کلاس اصلی برای عملیات CRUD REST API در php
کد php زیر کلاس Mobile که حاوی متد های لازم برای انجام عملیات CRUD دیتابیس است , را شامل می شود. این توابع با استفاده از کلاس هندلر REST بر اساس نوع درخواست کلاینت فراخوانی می شوند . کلاس اصلی شامل توابع CRUD پاسخ را به صورت آرایه ای و در فرمت کد شده JSON برگشت می دهند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
<?php require_once("dbcontroller.php"); /* A domain Class to demonstrate RESTful web services */ Class Mobile { private $mobiles = array(); public function getAllMobile(){ if(isset($_GET['name'])){ $name = $_GET['name']; $query = 'SELECT * FROM tbl_mobile WHERE name LIKE "%' .$name. '%"'; } else { $query = 'SELECT * FROM tbl_mobile'; } $dbcontroller = new DBController(); $this->mobiles = $dbcontroller->executeSelectQuery($query); return $this->mobiles; } public function addMobile(){ if(isset($_POST['name'])){ $name = $_POST['name']; $model = ''; $color = ''; if(isset($_POST['model'])){ $model = $_POST['model']; } if(isset($_POST['color'])){ $color = $_POST['color']; } $query = "insert into tbl_mobile (name,model,color) values ('" . $name ."','". $model ."','" . $color ."')"; $dbcontroller = new DBController(); $result = $dbcontroller->executeQuery($query); if($result != 0){ $result = array('success'=>1); return $result; } } } public function deleteMobile(){ if(isset($_GET['id'])){ $id = $_GET['id']; $query = 'DELETE FROM tbl_mobile WHERE id = '.$id; $dbcontroller = new DBController(); $result = $dbcontroller->executeQuery($query); if($result != 0){ $result = array('success'=>1); return $result; } } } public function editMobile(){ if(isset($_POST['name']) && isset($_GET['id'])){ $name = $_POST['name']; $model = $_POST['model']; $color = $_POST['color']; $query = "UPDATE tbl_mobile SET name = '".$name."', model ='". $model ."', color = '". $color ."' WHERE id = ".$_GET['id']; } $dbcontroller = new DBController(); $result= $dbcontroller->executeQuery($query); if($result != 0){ $result = array('success'=>1); return $result; } } } ?> |
امیدوارم از آموزش ساخت عملیات REST API CRUD در php لذت برده باشید . در آموزش های بعدی نحوه پیاده سازی عملیات جستجو REST API را خواهیم داشت .
برای دانلود سورس کد کامل از دانلود باکس استفاده کنید
هر سوالی داشتید ، از قسمت نظرات اقدام کنید . سریعا ، پاسخگوی سوالات شما هستیم .
موفق و پیروز باشید.
سلام و عرض ادب. من یک سوال از خدمت شما دارم ولی نمیدونم مربوط به این مطلب میشه یا نه. وقتی درخواست رو از طریق restfull به یک وب سرویس ارسال میکنیم و پاسخ دریافت میکنم پاسخ به صورت json برگردانده میشه. چطور میتونم اطلاعات پاسخ ارسالی رو استخراج کنم.؟ باید echo کنم؟
سلام.
باید با تابع json_decode اون رو بصورت آرایه دربیارید و بعد خانه های آن را بخونید
https://netparadis.com/post-json-data-using-php-curl