முக்கிய விஷயங்கள்
- API என்பது Client-க்கும் Server-க்கும் இடையே நடக்கும் ஒரு தெளிவான Contract (ஒப்பந்தம்); நீங்கள் என்ன கேட்கிறீர்களோ, அதை அது துல்லியமாகத் திருப்பித் தரும்.
- REST ஆர்க்கிடெக்சர் டேட்டாவை நிர்வகிக்க GET, POST, PUT, PATCH, DELETE போன்ற பொதுவான HTTP முறைகளைப் பயன்படுத்துகிறது.
- Status Codes மூலமாக ஒரு Request வெற்றியடைந்ததா அல்லது எங்கு பிரச்னை வந்தது என்பதை உடனே புரிந்துகொள்ள முடியும் (200s வெற்றி, 400s Client தவறு, 500s Server கோளாறு).
- Frontend மற்றும் Server இடையே தகவல்களைப் பரிமாறிக்கொள்ள எளிய Text வடிவமான JSON உலகளாவிய தரமாக விளங்குகிறது.
- UI கோட் எதுவும் எழுதத் தொடங்குவதற்கு முன்பே curl அல்லது Postman டூல்கள் மூலம் API-களை நாம் நேரடியாகச் சோதித்துப் பார்க்க முடியும்.
Client மற்றும் Server எப்படி பேசிக்கொள்ளுது?
சென்னை தரமணி அல்லது டைடல் பார்க் பக்கத்துல இருக்குற ஒரு டீ கடைக்கு போறதா கற்பனை பண்ணிப்போம். நீங்க சர்வர் அண்ணாகிட்ட போயிட்டு, "ஒரு ஸ்ட்ராங் இஞ்சி டீ குடுங்க" அப்படின்னு ஆர்டர் பண்றீங்க. நீங்க நேரா கிச்சனுக்குள்ள பூந்து பாலைக் காய்ச்சவோ, இஞ்சியைத் தட்டவோ மாட்டீங்க. சர்வர் உங்க ஆர்டரை வாங்கி கிச்சன்ல சொல்லி, டீ ரெடியானதும் உங்க டேபிளுக்குக் கொண்டு வந்து கொடுப்பார்.
சாப்ட்வேர் உலகத்துல உங்க மொபைல் போன் அல்லது பிரவுசர்தான் Client. கோடிக்கணக்கான டேட்டாக்களைப் பத்திரமா சேமிச்சு வெச்சிருக்கிற மெயின் கம்ப்யூட்டர் மற்றும் டேட்டாபேஸ்தான் கிச்சன், அதாவது Server. இவங்க ரெண்டு பேருக்கும் நடுவுல பாலமா வேலை செய்ற அந்த டீக்கடை சர்வர்தான் API (Application Programming Interface).
எளிமையா சொன்னா, API என்பது இரண்டு புரோகிராம்களுக்கு நடுவுல இருக்குற ஒரு ஸ்ட்ரிக்ட் Contract (ஒப்பந்தம்). அதாவது, "இந்த அட்ரஸுக்கு இந்த ஃபார்மேட்ல டேட்டாவை அனுப்பினா, நான் பதிலுக்கு இந்த டேட்டாவைத் தருவேன்" என்கிற தெளிவான விதிமுறை. உதாரணமாக, நீங்க ஒரு டிராவல் ஆப்ல போயிட்டு சென்னை டு மதுரை ட்ரெயின் டிக்கெட் தேடுறீங்கனு வெச்சுப்போம். அந்த பிரைவேட் ஆப் கிட்ட மொத்த இந்திய ரயில்வே டேட்டாவும் இருக்காது. அந்த ஆப் உடனே IRCTC-யோட API-ஐ கூப்பிட்டு, realtime-ல எத்தனை சீட் இருக்குன்னு கேட்டு வாங்கி உங்க ஸ்கிரீன்ல காட்டும்.
REST (Representational State Transfer) என்பது இந்த மாதிரி API-களை உருவாக்குறதுக்கான ஒரு சிறப்பான ஆர்க்கிடெக்சர் ஸ்டைல். இது வெப்-ல இருக்குற Users, Orders, Tickets போன்ற ஒவ்வொன்றையும் 'Resources' அப்படின்னு தனித்தனி URL வழியா அடையாளம் காணுது. புதுசா எந்த புரோட்டோகாலும் உருவாக்காம, பல வருஷமா இன்டர்நெட்டை இயக்கிட்டு வர்ற பொதுவான HTTP வழியிலேயே இது வேலை செய்யுது.
வெப் டெவலப்மென்ட்ல எந்தெந்த HTTP Methods ரொம்ப முக்கியம்?
ஒரு Client பிரவுசர்ல இருந்து Server-க்கு API Request அனுப்பும்போது, கூடவே ஒரு HTTP Method (HTTP Verb) சேர்த்து அனுப்பும். அதாவது, அந்த Resource-ஐ வெச்சு நாம என்ன காரியம் செய்யப் போறோம்னு Server-க்கு முன்கூட்டியே சொல்ற கட்டளைதான் இந்த Method.
நடைமுறையில 99 சதவிகித வெப் டெவலப்மென்ட் வேலைகளுக்கு ஐந்து முக்கியமான Methods பயன்படுது:
- GET: சர்வர்ல இருந்து டேட்டாவை எடுத்துப் பார்க்க மட்டும் பயன்படும். Flipkart-ல ஒரு மொபைல் போன் பக்கத்தை ஓபன் பண்ணும்போது, அந்த விவரங்களை எடுத்துவர GET Request போகும். GET method மூலமா சர்வர்ல எந்த டேட்டாவும் மாறக்கூடாது.
- POST: சர்வர்ல முற்றிலும் புதுசா ஒரு டேட்டாவை உருவாக்க இது பயன்படும். புதுசா Login அக்கவுண்ட் கிரியேட் பண்றது அல்லது ஒரு புதிய Swiggy ஆர்டர் போடுறது இதற்கான உதாரணம்.
- PUT: இருக்குற ஒரு பழைய டேட்டாவை முழுசா மாத்தி புதுசா ரீப்ளேஸ் பண்ண PUT பயன்படுத்துவாங்க. உங்க ப்ரொஃபைல் மொத்தத்தையும் மாத்தும்போது இது பயன்படும்.
- PATCH: ஒரு ரெக்கார்டுல குறிப்பிட்ட ஒரு சின்ன விஷயத்தை மட்டும் அப்டேட் செய்ய PATCH உதவும். உதாரணமாக, உங்க அக்கவுண்ட்ல போன் நம்பரை மட்டும் மாத்த PATCH சிறந்த சாய்ஸ்.
- DELETE: குறிப்பிட்ட ஒரு டேட்டாவை நிரந்தரமாக நீக்க இது பயன்படும். Cart-ல இருந்து ஒரு பொருளை எடுப்பது அல்லது அக்கவுண்ட்டை டெலீட் செய்வது போல.
இதை ஜாவாஸ்கிரிப்ட் வழியா பிரவுசர்ல எப்படி இயக்குவாங்கன்னு இந்த சின்ன fetch உதாரணத்தைப் பாருங்க:
// புதிய User தகவலை அனுப்ப ஒரு POST Request
const response = await fetch('https://api.example.com/users', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Karthik',
city: 'Chennai'
})
});
const data = await response.json();
console.log(data);முக்கியமான HTTP Status Codes என்ன சொல்ல வருது?
நாம அனுப்புற Request-க்கு சர்வர் பதில் அனுப்பும்போது, கூடவே 3 இலக்க நம்பர்ல ஒரு Status Code-ஐ அனுப்பும். அந்த நம்பரை வெச்சே உள்ளே விஷயம் சக்சஸ் ஆச்சா, இல்ல சொதப்பிடுச்சான்னு கண்டுபிடிச்சிடலாம்.
Status Codes ஐந்து குடும்பங்களா பிரிக்கப்பட்டிருக்கு. அதில் ஒரு டெவலப்பரா நீங்க தினசரி பார்க்கப்போற முக்கியமான கோட்கள் இதோ:
- 2xx (வெற்றி):
200 OK: கேட்ட டேட்டா சரியா கிடைச்சிருச்சு.
201 Created: POST வழியா புது டேட்டா வெற்றிகரமா உருவாகிடுச்சு. - 3xx (Redirection):
301 Moved Permanently: நீங்க தேடுற பக்கம் வேற புதிய URL-க்கு நிரந்தரமா போயிடுச்சு. - 4xx (Client பக்கம் தவறு):
400 Bad Request: நீங்க அனுப்பின டேட்டாவுல ஏதோ தப்பு இருக்கு (JSON syntax பிழை போல).
401 Unauthorized: Login பண்ணாம அல்லது Secret Token இல்லாம வர முடியாது.
403 Forbidden: Login பண்ணியாச்சு, ஆனா இந்த டேட்டாவை பார்க்க உங்களுக்கு அனுமதி இல்லை (Admin rights தேவை).
404 Not Found: நீங்க கேட்ட URL அல்லது ID சர்வர்ல சுத்தமா இல்லை. - 5xx (Server பக்கம் கோளாறு):
500 Internal Server Error: கிச்சன்ல தீப்பிடிச்சிருச்சு! அதாவது Server கோட்ல ஏதோ பெரிய பக் அல்லது க்ராஷ் நடந்துடுச்சு.
502 Bad Gateway / 503 Service Unavailable: பேக்கெண்ட் சர்வர் ஆஃப்லைன்ல இருக்கு அல்லது டவுன் ஆகியிருக்கு.
Data அனுப்ப JSON format ஏன் இவ்வளவு முக்கியம்?
Client மற்றும் Server இரண்டுக்கும் பொதுவான ஒரு மொழி வேணும் இல்லையா? ஒருத்தர் Python, இன்னொருத்தர் Node.js அல்லது Go மொழியில இருப்பாங்க. இவங்க எல்லாரும் சுலபமா புரிஞ்சுக்கிற டேட்டா வடிவம்தான் JSON (JavaScript Object Notation).
JSON என்பது மனிதர்களும் ஈஸியா படிக்கக்கூடிய, கம்ப்யூட்டரும் வேகமா parse பண்ணக்கூடிய ஒரு கீ-வேல்யூ (Key-Value) டெக்ஸ்ட் வடிவம். அரே (Array), நம்பர், ஸ்ட்ரிங், பூலியன் ஆகியவற்றை மிக நேர்த்தியா இதில் அனுப்பலாம். உதாரணத்துக்கு ஒரு ஆன்லைன் ஷாப்பிங் ஆர்டர் JSON-ல இப்படித்தான் இருக்கும்:
{
"order_id": "ORD_98234",
"customer_name": "Priya",
"items": [
{
"product_id": 101,
"name": "Filter Coffee Powder",
"price": 180
}
],
"payment_status": "PAID",
"amount_inr": 180
}API-ஐ curl மற்றும் Postman வெச்சு எப்படி test பண்ணலாம்?
ஒரு பெரிய ரியாக்ட் (React) வெப்சைட்டையோ அல்லது ஆண்ட்ராய்டு ஆப்பையோ டிசைன் பண்ணி முடிக்கிற வரைக்கும் API வேலை செய்யுதா இல்லையானு காத்திருக்க வேண்டிய அவசியமே இல்லை. UI-யே இல்லாம தனிப்பட்ட முறையில API-ஐ சோதிக்க Postman மற்றும் curl பெரிதும் உதவுது.
Postman என்பது ஒரு அருமையான GUI சாப்ட்வேர். பட்டன்களை க்ளிக் பண்ணி URL, Headers, Body கொடுத்து உடனே ரெஸ்பான்ஸை கண்ணால பார்த்துக்கலாம். ஆனா எந்த ஒரு சாப்ட்வேரும் இன்ஸ்டால் பண்ணாம, வெறும் டெர்மினல் மூலமாவே வேகமா டெஸ்ட் பண்ண curl கமாண்ட் லைன் டூல் பயன்படுது.
உதாரணத்துக்கு, உங்கள் கம்ப்யூட்டர் டெர்மினல்ல இருந்தே ஒரு சாம்பிள் API-ஐ டெஸ்ட் செய்ய இந்த கமாண்ட்டை இயக்கிப் பாருங்க:
ஒரு டெமோ போஸ்ட் விவரத்தை GET செய்து பார்க்க
curl -X GET https://jsonplaceholder.typicode.com/posts/1 \
-H "Accept: application/json"Developers பண்ற பொதுவான தப்புகள் என்ன?
புதிதாக வெப் டெவலப்மென்ட் படிக்கிறவங்க API டிசைன் பண்ணும்போது அடிக்கடி சில தவறுகளைச் செய்வாங்க. அதை ஆரம்பத்திலேயே தவிர்ப்பது நல்லது.
முதல் தப்பு: GET Request மூலமா டேட்டாபேஸ்ல இருக்குற தகவல்களை மாத்துவது அல்லது டெலீட் செய்வது. GET என்பது எப்போதும் 'Safe' ஆக இருக்க வேண்டும். அதை எத்தனை முறை கூப்பிட்டாலும் சர்வர் டேட்டா மாறவே கூடாது.
இரண்டாவது தப்பு: சர்வர்ல ஏதோ எரர் வந்திருக்கும், ஆனா ரெஸ்பான்ஸ் Status Code-ல 200 OK அனுப்பிட்டு, உள்ளே JSON பாடிக்குள்ள { "error": true } அப்படின்னு போடுவது. இது ரொம்ப தப்பான பழக்கம். எரர் வந்தால் தகுந்த 4xx அல்லது 5xx Status Code-ஐ தான் அனுப்ப வேண்டும்.
மூன்றாவது தப்பு: Login பாஸ்வேர்டு, கார்டு நம்பர் போன்ற ரகசியமான விஷயங்களை URL-லயே தெரிவது போல GET Request query parameters-ஆக அனுப்புவது. இதையெல்லாம் எப்போதும் என்க்ரிப்ட் செய்யப்பட்ட POST Request-ன் Body வழியாக மட்டுமே அனுப்ப வேண்டும்.
இந்திய IT நிறுவனங்கள் மற்றும் Interviews-ல இது எங்க பயன்படுது?
Zoho, Freshworks, Swiggy, TCS போன்ற முன்னணி இந்திய நிறுவனங்களின் இன்டர்வியூக்களில் REST API பற்றிய கேள்விகள் கட்டாயம் இடம்பெறும். "PUT-க்கும் PATCH-க்கும் என்ன வித்தியாசம்?", "Idempotency அப்படின்னா என்ன?", "401 Unauthorized-க்கும் 403 Forbidden-க்கும் உள்ள வேறுபாடு என்ன?" போன்ற கேள்விகளை ஃப்ரெஷர் மற்றும் ஜூனியர் டெவலப்பர்களிடம் அடிக்கடி கேட்பார்கள். இந்த அடிப்படைக் கட்டமைப்பு புரிந்தால் மட்டுமே மைக்ரோசர்வீசஸ் மற்றும் கிளவுட் ஆர்க்கிடெக்சருக்குள் உங்களால் எளிதாக நுழைய முடியும்.
நீங்க இன்னைக்கே பண்ணி பார்க்க ஒரு சின்ன Practice Task
இதை படிச்சுட்டு அப்படியே விட்றாம, உங்க லேப்டாப் டெர்மினல் அல்லது போஸ்ட்மேன் டூலை ஓபன் பண்ணுங்க. JSONPlaceholder (jsonplaceholder.typicode.com) என்கிற இலவச டெஸ்டிங் தளத்தைப் பயன்படுத்தி ஒரு GET Request அனுப்பி பாருங்க. பிறகு உங்க பெயர் மற்றும் ஊரை JSON வடிவில் வைத்து ஒரு POST Request அனுப்பி, 201 Created ஸ்டேட்டஸ் கோடு வருதான்னு செக் பண்ணிப் பாருங்க. இந்த ஒரு சின்ன பயிற்சி API பயத்தை முழுசா போக்கிடும்!




கருத்துகள் (0)
Be the first to comment!