PHP හි REST API

API සඳහා විශේෂ ප්‍රවේශයන් තිබේ, API සංවර්ධකයින්ට මෙන්ම එහි පරිශීලකයින්ටද පොදු පහසුව සඳහා සම්මත කරන.

එවැනි ප්‍රවේශයන්ගෙන් එකක් වන්නේ REST API ය. එහි මූලික අදහස වන්නේ CRUD මෙහෙයුම් සඳහා විවිධ ක්‍රම භාවිතා කිරීමට අවශ්‍ය බවයි HTTP ප්‍රොටෝකෝලය.

දත්ත ලබා ගැනීම සඳහා - GET ක්‍රමය, දත්ත සෑදීම සඳහා - POST ක්‍රමය, දත්ත වෙනස් කිරීම සඳහා - PUT ක්‍රමය, දත්ත මකා දැමීම සඳහා - DELETE ක්‍රමය.

උදාහරණයක් ලෙස අපි යම් API එකක් සලකා බලමු, පරිශීලකයින් හසුරවන. අපි බලමු, විවිධ ක්‍රියා සඳහා URL පෙනෙන්නේ කෙසේද කියා.

සියලුම පරිශීලකයින් ලබා ගනිමු:

urlGET http://api.loc/users/

එහි id අනුව එක් පරිශීලකයෙකු ලබා ගනිමු:

urlGET http://api.loc/user/1/

පරිශීලකයෙකු සාදන්න:

urlPOST http://api.loc/user/

එහි id අනුව පරිශීලකයෙකු වෙනස් කරන්න:

urlPUT http://api.loc/user/1/

එහි id අනුව පරිශීලකයෙකු මකා දමන්න:

urlDELETE http://api.loc/user/1/

REST API බලමු PHP හි ක්‍රියාත්මක වන්නේ. එහි යමක් තිබේ ගැටලුව. කාරණය නම්, PHP සහ CURL යන දෙකම GET සහ POST ක්‍රම පමණක් සහය දක්වයි:

api.loc/index.php<?php
  $method = $_SERVER['REQUEST_METHOD'];
  var_dump($method); // GET සහ POST පමණි
?>

එබැවින් REST API ක්‍රියාත්මක කිරීමට සිදුවනු ඇත හරකැම්මකට යන්න. එහි සාරය එයයි, වාස්තවික දත්ත සම්ප්‍රේෂණය වනු ඇත GET සහ POST ක්‍රම පමණක්, නමුත් අපි එසේ වන්නෙමු වෙනත් ක්‍රමවල ක්‍රියාකාරිත්වය අනුකරණය කරන්න අභිරුචි HTTP ශීර්ෂකයක් භාවිතා කිරීම. අපි එය නම් කරමු, උදාහරණයක් ලෙස, HTTP-X-HTTP-METHOD.

එවිට අපට අන්තර්ගතය ලබා ගත හැකිය මෙම ශීර්ෂකය පහත පරිදි:

api.loc/index.php<?php
  $method = $_SERVER['HTTP-X-HTTP-METHOD'];
?>

දැන් අපට API හි ක්‍රියාත්මක කිරීම ලිවිය හැකිය:

api.loc/index.php<?php
  $method = $_SERVER['HTTP-X-HTTP-METHOD'];
  
  switch ($method)  {
    case 'GET':
      // ...
    break;
    case 'POST':
      // ...
    break;
    case 'PUT':
      // ...
    break;
    case 'DELETE':
      // ...
    break;
  }
?>
Задание 1

නිෂ්පාදන REST API ක්‍රියාත්මක කරන්න අන්තර්ජාල වෙළඳසැල.

Задание 2

ක්‍රියාත්මක කළ කාර්යය පරීක්ෂා කරන්න CURL පුස්තකාලය භාවිතා කරමින් API.