REST

انتقال دولت نمایندگی

REST مخفف آن است انتقال دولت نمایندگی.

چه شده است انتقال دولت نمایندگی?

یک سبک معماری برای طراحی برنامه های کاربردی تحت شبکه. تقریباً در همه موارد، به یک پروتکل ارتباطی بدون حالت، کلاینت-سرور، قابل ذخیره سازی متکی است. HTTP پروتکل ایده پشت REST این است که تمام منابع سمت سرور را به عنوان اشیایی که می توان از طریق مجموعه ای از عملیات تعریف شده ایجاد، خواند، به روز کرد یا حذف کرد، در نظر گرفت. این مفهوم دقیقاً با عملیات استاندارد پشتیبانی شده توسط HTTP مطابقت دارد: POST، GET، PUT و DELETE.

چرا به آن انتقال دولتی نمایندگی می گویند

مدت انتقال دولت نمایندگی به دلایل خاصی انتخاب شده است:

  • نمایندگی به بازنمایی منابع (سند یا شیئی که از سرور درخواست کرده اید) که از طریق شبکه منتقل می شود اشاره دارد. مشتری می تواند به راحتی این نمایش ها را در قالب هایی مانند XML, JSON، یا یامل.
  • انتقال ایالتی به این معنی است که هر تعامل کلاینت و سرور یک حالت را منتقل می کند. هنگامی که یک مشتری یک منبع را درخواست می کند، پاسخ سرور اساساً وضعیت آن منبع را به مشتری منتقل می کند. این انتقال وضعیت به یک برنامه RESTful اجازه می دهد تا بدون حالت باشد، به این معنی که هر درخواست از یک کلاینت به یک سرور باید شامل تمام اطلاعات مورد نیاز برای درک و تکمیل درخواست باشد. سرور هیچ وضعیتی را در مورد جلسه مشتری در سمت سرور ذخیره نمی کند.

اصول REST

REST بر اساس چندین اصل کلیدی ساخته شده است که سادگی و قدرت آن را مشخص می کند:

  1. بی تابعیت: هر درخواست از مشتری به سرور باید شامل تمام اطلاعات لازم برای درک و تکمیل درخواست باشد. سرور هیچ حالت جلسه ای ندارد. به طور کامل در سمت مشتری نگهداری می شود.
  2. مشتری-سرور: یک رابط یکنواخت مشتریان را از سرورها جدا می کند. این جداسازی نگرانی‌ها از تکامل مستقل منطق سمت مشتری و ذخیره‌سازی داده‌های سمت سرور پشتیبانی می‌کند و قابلیت حمل رابط مشتری را در چندین پلتفرم بهبود می‌بخشد.
  3. قابل ذخیره سازی: پاسخ‌ها باید خود را به‌عنوان ذخیره‌سازی یا عدم استفاده مجدد مشتریان از داده‌های قدیمی یا نامناسب در پاسخ به درخواست‌های بیشتر تعریف کنند.
  4. سیستم لایه ای: یک کلاینت معمولاً نمی تواند بگوید که مستقیماً به سرور نهایی متصل است یا به یک واسطه. سرورهای واسطه می‌توانند مقیاس‌پذیری سیستم را با فعال کردن متعادل‌سازی بار و ارائه حافظه پنهان مشترک بهبود بخشند.
  5. رابط یکنواخت: برای به دست آوردن مزایای REST، برنامه ها باید به یک رابط یکنواخت پایبند باشند. این معمولاً شامل استفاده از روش‌های استاندارد HTTP به شیوه‌ای ثابت و پیروی از URLهای منبع محور است.

مثال پی اچ پی

ایجاد یک API RESTful در PHP شامل رسیدگی به درخواست های HTTP (GET، POST، PUT، DELETE) و پاسخ دادن با داده ها در قالبی مانند JSON یا XML است. در اینجا یک مثال ساده از یک API RESTful در PHP است که لیستی از وظایف را مدیریت می کند. این مثال مدیریت درخواست‌های GET و POST را برای سادگی نشان می‌دهد.

این پی اچ پی مثال به شما نشان می دهد که چگونه دو نقطه پایانی ایجاد کنید: یکی برای بازیابی لیست وظایف (GET /tasks) و دیگری برای افزودن یک کار جدید (POST /tasks).

index.php - نقطه ورود

<?php
// Define a simple array of tasks as our "database"
$tasks = [
    ['id' => 1, 'title' => 'Buy groceries', 'completed' => false],
    ['id' => 2, 'title' => 'Finish homework', 'completed' => false]
];

// Get the request method
$requestMethod = $_SERVER['REQUEST_METHOD'];

// Simple router
switch ($requestMethod) {
    case 'GET':
        getTasks();
        break;
    case 'POST':
        addTask();
        break;
    default:
        // Handle other HTTP methods or return an error
        header('HTTP/1.1 405 Method Not Allowed');
        break;
}

function getTasks() {
    global $tasks;
    header('Content-Type: application/json');
    echo json_encode($tasks);
}

function addTask() {
    global $tasks;
    $input = json_decode(file_get_contents('php://input'), true);
    if (!isset($input['title']) || !isset($input['completed'])) {
        header('HTTP/1.1 400 Bad Request');
        echo json_encode(['message' => 'Missing title or completed status']);
        return;
    }

    $newTask = [
        'id' => end($tasks)['id'] + 1,
        'title' => $input['title'],
        'completed' => $input['completed']
    ];

    $tasks[] = $newTask;
    header('Content-Type: application/json');
    echo json_encode($newTask);
}

?>

چگونه کار می کند

  • این اسکریپت به عنوان یک نقطه پایانی ساده API عمل می کند. بسته به روش درخواست HTTP، لیستی از وظایف را برمی گرداند (GET) یا یک کار جدید به لیست اضافه می کند (POST).
  • برای GET درخواست، آن را به سادگی خروجی $tasks آرایه با فرمت JSON
  • برای POST درخواست‌ها، بار JSON را از بدنه درخواست می‌خواند (فرض می‌شود که حاوی title و completed status)، یک کار جدید به $tasks آرایه، و وظیفه جدید را به صورت JSON برمی گرداند.
  • این مثال از یک آرایه جهانی PHP به عنوان یک پایگاه داده ساختگی استفاده می کند. در یک برنامه دنیای واقعی، احتمالاً با یک پایگاه داده برای ذخیره و بازیابی وظایف تعامل خواهید داشت.

تست API

می توانید این API را با استفاده از ابزارهایی مانند Postman یا cURL آزمایش کنید. به عنوان مثال، برای اضافه کردن یک کار جدید:

curl -X POST -H "Content-Type: application/json" -d '{"title":"Learn REST","completed":false}' http://localhost/index.php

و برای دریافت لیست وظایف:

curl -X GET http://localhost/index.php

این یک مثال بسیار ابتدایی برای نشان دادن مفهوم RESTful API در PHP است. سناریوهای دنیای واقعی نیاز به رسیدگی قوی تری به درخواست ها، مدیریت خطا، و ملاحظات امنیتی مانند احراز هویت و اعتبار سنجی ورودی دارند.

  • اختصار: REST
بازگشت به دکمه بالا
نزدیک

Adblock شناسایی شد

Martech Zone می تواند این محتوا را بدون هیچ هزینه ای در اختیار شما قرار دهد زیرا ما از طریق درآمد تبلیغاتی، پیوندهای وابسته و حمایت های مالی از سایت خود کسب درآمد می کنیم. اگر در حین مشاهده سایت ما، مسدود کننده تبلیغات خود را حذف کنید، خوشحال خواهیم شد.