REST

Ordezkaritza Estatuaren Transferentzia

REST akronimoa da Ordezkaritza Estatuaren Transferentzia.

Zer da Ordezkaritza Estatuaren Transferentzia?

Sareko aplikazioak diseinatzeko estilo arkitektonikoa. Ia kasu guztietan, estaturik gabeko komunikazio-protokolo batean oinarritzen da, bezero-zerbitzaria, cachean dagoena. HTTP protokoloa. REST atzean dagoen ideia zerbitzariaren aldeko baliabide guztiak definitutako eragiketa multzo baten bidez sortu, irakurri, eguneratu edo ezabatu daitezkeen objektu gisa tratatzea da. Kontzeptu hau HTTP-k onartzen dituen eragiketa estandarrekin bat dator: POST, GET, PUT eta DELETE.

Zergatik deitzen zaio ordezkaritza estatu-transferentzia

Epe Ordezkaritza Estatuaren Transferentzia arrazoi zehatzengatik aukeratzen da:

  • Ordezkaritza sarean transferitutako baliabideen irudikapenei (dokumentua edo zerbitzariari eskatu diozun objektua) aipatzen da. Bezeroak erraz kudeatu ditzake irudikapen hauek bezalako formatuetan XML, JSONEdo YAML.
  • Estatu transferentzia Bezero eta zerbitzariaren elkarrekintza bakoitzak egoera bat transferitzen duela esan nahi du. Bezero batek baliabide bat eskatzen duenean, zerbitzariaren erantzunak funtsean baliabide horren egoera bezeroari transferitzen dio. Egoera-transferentzia horri esker, RESTful aplikazio bat estaturik gabekoa izan daiteke, hau da, bezero batek zerbitzari bati egindako eskaera bakoitzak eskaera ulertu eta betetzeko behar den informazio guztia eduki behar du. Zerbitzariak ez du bezero-saioari buruzko egoerarik gordetzen zerbitzariaren aldean.

ATSEDEN printzipioak

REST bere sinpletasuna eta potentzia definitzen duten funtsezko hainbat printzipiotan eraikita dago:

  1. Estaturik gabekoa: Bezerotik zerbitzarirako eskaera bakoitzak eskaera ulertzeko eta betetzeko beharrezko informazio guztia eduki behar du. Zerbitzariak ez du saio-egoerarik; guztiz bezeroaren alde gordetzen da.
  2. Bezero-Zerbitzaria: Interfaze uniforme batek bezeroak zerbitzarietatik bereizten ditu. Kezkak bereizte honek bezeroaren logikaren eta zerbitzariaren datuen biltegiratzearen bilakaera independentea onartzen du, plataforma anitzetan bezeroaren interfazearen eramangarritasuna hobetuz.
  3. Cache daiteke: Erantzunek bere burua cache daitekeen gisa definitu behar dute edo ez bezeroek datu zaharkituak edo desegokiak berrerabil ditzaten eskaera gehiagori erantzuteko.
  4. Geruzatutako sistema: Bezero batek normalean ezin du esan zuzenean amaierako zerbitzariari edo bitartekari bati konektatuta dagoen. Bitarteko zerbitzariek sistemaren eskalagarritasuna hobetu dezakete karga orekatzea ahalbidetuz eta partekatutako cacheak eskainiz.
  5. Interfaze uniformea: REST-en onurak lortzeko, aplikazioek interfaze uniforme bati atxiki behar diote. Honek normalean HTTP metodo estandarrak modu koherentean erabiltzea eta baliabideetara bideratutako URLak jarraitzea dakar.

PHP Adibidea

PHPn RESTful API bat sortzeak HTTP eskaerak kudeatzea (GET, POST, PUT, DELETE) eta JSON edo XML bezalako formatuan datuekin erantzutea dakar. Hona hemen ataza zerrenda bat kudeatzen duen PHPko RESTful API baten adibide sinplifikatu bat. Adibide honek GET eta POST eskaerak sinpletasunez kudeatzen erakusten du.

helburua PHP Adibideak bi amaiera puntu nola sortu erakutsiko dizu: bata zereginen zerrenda berreskuratzeko (GET /tasks) eta beste bat zeregin berri bat gehitzeko (POST /tasks).

index.php – Sarrera-puntua

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

?>

Nola funtzionatzen duen

  • Script honek API amaierako puntu soil gisa funtzionatzen du. HTTP eskaera metodoaren arabera, zereginen zerrenda bat itzultzen du (GET) edo zeregin berri bat gehitzen du zerrendara (POST).
  • for GET eskaerak, besterik gabe ateratzen du $tasks array JSON formatuan.
  • for POST eskaerak, eskaeraren gorputzetik JSON karga irakurtzen du (suposatzen duela title completed egoera), zeregin berri bat gehitzen dio $tasks array, eta zeregin berria JSON gisa itzultzen du.
  • Adibide honek PHP array global bat erabiltzen du datu-base simulatu gisa. Mundu errealeko aplikazio batean, ziurrenik datu-base batekin elkarreragin egingo zenuke zereginak gordetzeko eta berreskuratzeko.

APIa probatzen

Postman edo cURL bezalako tresnak erabiliz probatu dezakezu API hau. Adibidez, zeregin berri bat gehitzeko:

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

Eta zereginen zerrenda lortzeko:

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

Hau oso oinarrizko adibidea da PHP-n RESTful API baten kontzeptua ilustratzeko. Mundu errealeko agertokiek eskaeren kudeaketa sendoagoa beharko lukete, erroreen kudeaketa eta segurtasun kontuak, hala nola autentifikazioa eta sarrera baliozkotzea.

  • laburdura: REST
Itzuli gora botoia
Itxi

Adblokea hauteman da

Martech Zone eduki hau kosturik gabe eskaintzeko gai da, gure webgunea iragarkien diru-sarreren, kideen esteken eta babesen bidez dirua irabazten dugulako. Eskertuko genuke gure gunea ikusten duzun bitartean iragarkien blokeatzailea kentzea.