நவக்கிரகங்களும்
பிரதிநிதித்துவ மாநில இடமாற்றம்
REST என்பதன் சுருக்கம் பிரதிநிதித்துவ மாநில இடமாற்றம்.
என்ன பிரதிநிதித்துவ மாநில இடமாற்றம்?
நெட்வொர்க் செய்யப்பட்ட பயன்பாடுகளை வடிவமைப்பதற்கான கட்டடக்கலை பாணி. கிட்டத்தட்ட எல்லா நிகழ்வுகளிலும், இது நிலையற்ற, கிளையன்ட்-சர்வர், கேச் செய்யக்கூடிய தகவல் தொடர்பு நெறிமுறையை நம்பியுள்ளது. , HTTP நெறிமுறை. REST க்கு பின்னால் உள்ள யோசனை என்னவென்றால், அனைத்து சர்வர் பக்க ஆதாரங்களையும், வரையறுக்கப்பட்ட செயல்பாடுகளின் மூலம் உருவாக்க, படிக்க, புதுப்பிக்க அல்லது நீக்கக்கூடிய பொருள்களாகக் கருதுவதாகும். இந்த கருத்து HTTP ஆல் ஆதரிக்கப்படும் நிலையான செயல்பாடுகளுடன் நெருக்கமாக ஒத்துப்போகிறது: POST, GET, PUT மற்றும் DELETE.
இது ஏன் பிரதிநிதித்துவ மாநில இடமாற்றம் என்று அழைக்கப்படுகிறது
கால பிரதிநிதித்துவ மாநில இடமாற்றம் குறிப்பிட்ட காரணங்களுக்காக தேர்ந்தெடுக்கப்பட்டது:
- பிரதிநிதித்துவம் நெட்வொர்க் மூலம் மாற்றப்பட்ட ஆதார பிரதிநிதித்துவங்களை (ஆவணம் அல்லது சேவையகத்திலிருந்து நீங்கள் கோரிய பொருள்) குறிக்கிறது. போன்ற வடிவங்களில் வாடிக்கையாளர் இந்த பிரதிநிதித்துவங்களை எளிதாகக் கையாள முடியும் பிற, எஞ்சினியரிங், அல்லது YAML.
- மாநில இடமாற்றம் ஒவ்வொரு கிளையண்ட் மற்றும் சர்வர் தொடர்பு ஒரு மாநிலத்தை மாற்றுகிறது என்பதைக் குறிக்கிறது. ஒரு கிளையன்ட் ஒரு ஆதாரத்தைக் கோரும்போது, சேவையகத்தின் பதில் அந்த வளத்தின் நிலையை கிளையண்டிற்கு மாற்றுகிறது. இந்த நிலை பரிமாற்றமானது ஒரு RESTful பயன்பாட்டை நிலையற்றதாக இருக்க அனுமதிக்கிறது, அதாவது கிளையண்டிலிருந்து ஒரு சேவையகத்திற்கான ஒவ்வொரு கோரிக்கையும் கோரிக்கையைப் புரிந்துகொண்டு முடிக்க தேவையான அனைத்து தகவல்களையும் கொண்டிருக்க வேண்டும். கிளையன்ட் அமர்வைப் பற்றிய எந்த நிலையையும் சர்வர் பக்கத்தில் சேமித்து வைக்காது.
REST இன் கோட்பாடுகள்
REST அதன் எளிமை மற்றும் சக்தியை வரையறுக்கும் பல முக்கிய கொள்கைகளின் அடிப்படையில் கட்டமைக்கப்பட்டுள்ளது:
- நிலையற்ற: கிளையண்டிலிருந்து சேவையகத்திற்கான ஒவ்வொரு கோரிக்கையும் கோரிக்கையைப் புரிந்து கொள்ளவும் முடிக்கவும் தேவையான அனைத்து தகவல்களையும் கொண்டிருக்க வேண்டும். சேவையகத்திற்கு அமர்வு நிலை இல்லை; இது முற்றிலும் வாடிக்கையாளரின் பக்கத்தில் வைக்கப்படுகிறது.
- கிளையண்ட்-சர்வர்: ஒரு சீரான இடைமுகம் வாடிக்கையாளர்களை சேவையகங்களிலிருந்து பிரிக்கிறது. இந்தக் கவலைகளைப் பிரிப்பது கிளையன்ட் பக்க லாஜிக் மற்றும் சர்வர் பக்க தரவு சேமிப்பகத்தின் சுயாதீனமான பரிணாமத்தை ஆதரிக்கிறது, பல தளங்களில் கிளையன்ட் இடைமுகத்தின் பெயர்வுத்திறனை மேம்படுத்துகிறது.
- தற்காலிக சேமிப்பு: மேலும் கோரிக்கைகளுக்கு பதிலளிக்கும் வகையில், வாடிக்கையாளர்கள் பழைய அல்லது பொருத்தமற்ற தரவை மீண்டும் பயன்படுத்துவதைத் தடுக்க, பதில்கள் தங்களைத் தற்காலிகமாகச் சேமிக்கக்கூடியவை என வரையறுக்க வேண்டும்.
- அடுக்கு அமைப்பு: இறுதிச் சேவையகத்துடன் நேரடியாக இணைக்கப்பட்டுள்ளதா அல்லது இடைத்தரகருடன் இணைக்கப்பட்டுள்ளதா என்பதை ஒரு கிளையன்ட் சாதாரணமாகச் சொல்ல முடியாது. இடைநிலை சேவையகங்கள் சுமை சமநிலையை இயக்குவதன் மூலமும் பகிரப்பட்ட தற்காலிக சேமிப்புகளை வழங்குவதன் மூலமும் கணினி அளவிடுதலை மேம்படுத்தலாம்.
- சீரான இடைமுகம்: REST இன் நன்மைகளைப் பெற, பயன்பாடுகள் ஒரு சீரான இடைமுகத்தைக் கடைப்பிடிக்க வேண்டும். இது பொதுவாக நிலையான HTTP முறைகளைப் பயன்படுத்துவதையும், வளம் சார்ந்த URLகளைப் பின்பற்றுவதையும் உள்ளடக்குகிறது.
PHP எடுத்துக்காட்டு
PHP இல் ஒரு RESTful API ஐ உருவாக்குவது என்பது HTTP கோரிக்கைகளை (GET, POST, PUT, DELETE) கையாளுதல் மற்றும் JSON அல்லது XML போன்ற வடிவத்தில் தரவுகளுடன் பதிலளிப்பதை உள்ளடக்கியது. பணிகளின் பட்டியலை நிர்வகிக்கும் PHP இல் உள்ள RESTful API இன் எளிமையான உதாரணம் இங்கே. இந்த எடுத்துக்காட்டு GET மற்றும் POST கோரிக்கைகளை எளிமைக்காக கையாள்வதை நிரூபிக்கிறது.
இந்த PHP இரண்டு இறுதிப்புள்ளிகளை எவ்வாறு உருவாக்குவது என்பதை எடுத்துக்காட்டு காண்பிக்கும்: ஒன்று பணிகளின் பட்டியலை மீட்டெடுப்பதற்கு (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
நிலை), ஒரு புதிய பணியைச் சேர்க்கிறது$tasks
வரிசை, மற்றும் புதிய பணியை JSON என வழங்கும். - இந்த எடுத்துக்காட்டு PHP உலகளாவிய வரிசையை ஒரு போலி தரவுத்தளமாகப் பயன்படுத்துகிறது. நிஜ-உலக பயன்பாட்டில், பணிகளைச் சேமித்து மீட்டெடுக்க நீங்கள் தரவுத்தளத்துடன் தொடர்பு கொள்ளலாம்.
API ஐ சோதிக்கிறது
போஸ்ட்மேன் அல்லது கர்ல் போன்ற கருவிகளைப் பயன்படுத்தி இந்த APIயை நீங்கள் சோதிக்கலாம். எடுத்துக்காட்டாக, புதிய பணியைச் சேர்க்க:
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
PHP இல் RESTful API இன் கருத்தை விளக்குவதற்கு இது ஒரு மிக அடிப்படையான எடுத்துக்காட்டு. நிஜ-உலகக் காட்சிகளுக்கு கோரிக்கைகள், பிழை மேலாண்மை மற்றும் அங்கீகரிப்பு மற்றும் உள்ளீடு சரிபார்ப்பு போன்ற பாதுகாப்பு பரிசீலனைகளை மிகவும் வலுவான கையாளுதல் தேவைப்படும்.
- சுருக்கமான: நவக்கிரகங்களும்