Rest

Transferimi shtetëror përfaqësues

REST është akronimi i Transferimi shtetëror përfaqësues.

Çfarë është Transferimi shtetëror përfaqësues?

Një stil arkitektonik për dizajnimin e aplikacioneve në rrjet. Pothuajse në të gjitha rastet, ai mbështetet në një protokoll komunikimi pa shtetësi, klient-server, me cache, HTTP protokoll. Ideja pas REST është që të trajtohen të gjitha burimet e serverit si objekte që mund të krijohen, lexohen, përditësohen ose fshihen përmes një grupi operacionesh të përcaktuara. Ky koncept përputhet ngushtë me operacionet standarde të mbështetura nga HTTP: POST, GET, PUT dhe DELETE.

Pse quhet Transferimi i Shtetit Përfaqësues

Termi Transferimi shtetëror përfaqësues zgjidhet për arsye specifike:

  • përfaqësuese i referohet përfaqësimeve të burimeve (dokumenti ose objekti që keni kërkuar nga serveri) të transferuara përmes rrjetit. Klienti mund t'i trajtojë lehtësisht këto paraqitje në formate si XML, JSONose YAML.
  • Transferimi i shtetit nënkupton që çdo ndërveprim i klientit dhe serverit transferon një gjendje. Kur një klient kërkon një burim, përgjigja e serverit është në thelb transferimi i gjendjes së atij burimi te klienti. Ky transferim i gjendjes lejon që një aplikacion RESTful të jetë pa shtetësi, që do të thotë se çdo kërkesë nga një klient në një server duhet të përmbajë të gjithë informacionin e nevojshëm për të kuptuar dhe plotësuar kërkesën. Serveri nuk ruan asnjë gjendje në lidhje me sesionin e klientit në anën e serverit.

Parimet e REST

REST është ndërtuar mbi disa parime kryesore që përcaktojnë thjeshtësinë dhe fuqinë e tij:

  1. Pa shtetësi: Çdo kërkesë nga klienti në server duhet të përmbajë të gjithë informacionin e nevojshëm për të kuptuar dhe plotësuar kërkesën. Serveri nuk ka gjendje sesioni; mbahet tërësisht në anën e klientit.
  2. Klient-Server: Një ndërfaqe uniforme ndan klientët nga serverët. Kjo ndarje e shqetësimeve mbështet evolucionin e pavarur të logjikës së klientit dhe ruajtjes së të dhënave nga ana e serverit, duke përmirësuar transportueshmërinë e ndërfaqes së klientit nëpër platforma të shumta.
  3. I disponueshëm në memorie: Përgjigjet duhet të përcaktohen si të fshehta ose jo për të parandaluar klientët të ripërdorin të dhëna të vjetra ose të papërshtatshme në përgjigje të kërkesave të mëtejshme.
  4. Sistemi me shtresa: Një klient zakonisht nuk mund të tregojë nëse është i lidhur drejtpërdrejt me serverin fundor ose me një ndërmjetës. Serverët ndërmjetës mund të përmirësojnë shkallëzueshmërinë e sistemit duke mundësuar balancimin e ngarkesës dhe duke ofruar memorie të përbashkëta.
  5. Ndërfaqja uniforme: Për të marrë përfitimet e REST, aplikacionet duhet t'i përmbahen një ndërfaqeje uniforme. Kjo zakonisht përfshin përdorimin e metodave standarde HTTP në një mënyrë të qëndrueshme dhe ndjekjen e URL-ve të orientuara nga burimet.

Shembull PHP

Krijimi i një API RESTful në PHP përfshin trajtimin e kërkesave HTTP (GET, POST, PUT, DELETE) dhe përgjigjen me të dhëna në një format si JSON ose XML. Këtu është një shembull i thjeshtuar i një API RESTful në PHP që menaxhon një listë detyrash. Ky shembull tregon trajtimin e kërkesave GET dhe POST për thjeshtësi.

kjo PHP shembulli do t'ju tregojë se si të krijoni dy pika përfundimtare: një për të marrë listën e detyrave (GET /tasks) dhe një tjetër për shtimin e një detyre të re (POST /tasks).

index.php - Pika e hyrjes

<?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);
}

?>

How It Works

  • Ky skript vepron si një pikë fundore e thjeshtë e API-së. Në varësi të metodës së kërkesës HTTP, ajo ose kthen një listë detyrash (GET) ose shton një detyrë të re në listë (POST).
  • Për GET kërkesat, ai thjesht nxjerr në dalje $tasks grup në format JSON.
  • Për POST kërkesat, lexon ngarkesën JSON nga trupi i kërkesës (supozohet se përmban title completed status), shton një detyrë të re në $tasks grup, dhe kthen detyrën e re si JSON.
  • Ky shembull përdor një grup global PHP si një bazë të dhënash tallëse. Në një aplikacion të botës reale, ka të ngjarë të ndërveproni me një bazë të dhënash për të ruajtur dhe marrë detyrat.

Testimi i API-së

Ju mund ta testoni këtë API duke përdorur mjete si Postman ose cURL. Për shembull, për të shtuar një detyrë të re:

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

Dhe për të marrë listën e detyrave:

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

Ky është një shembull shumë themelor që synon të ilustrojë konceptin e një API RESTful në PHP. Skenarët e botës reale do të kërkonin trajtim më të fuqishëm të kërkesave, menaxhim të gabimeve dhe konsiderata të sigurisë si vërtetimi dhe vërtetimi i hyrjes.

  • Shkurtesa: Rest
Kthehu në krye të faqes
afër

Blloku i reklamave u zbulua

Martech Zone është në gjendje t'ju ofrojë këtë përmbajtje pa kosto, sepse ne fitojmë para nga faqja jonë përmes të ardhurave nga reklamat, lidhjeve të filialeve dhe sponsorizimeve. Do të vlerësonim nëse do të hiqnit bllokuesin tuaj të reklamave ndërsa shikoni faqen tonë.