🎧 Listen to this article: हिंदी · English · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · ଓଡ଼ିଆ · 日本語 · 中文
🌍 Read this in your language: हिंदी · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · ଓଡ଼ିଆ · 日本語 · 中文
Next.js என்பது இணைய பயன்பாடுகளை உருவாக்குவதற்கான ஒரு பிரபலமான ஃபிரேம்வொர்க் (framework) ஆகும். இதன் அம்சங்களை எவ்வாறு திறம்படப் பயன்படுத்துவது என்பதைப் புரிந்துகொள்வது உருவாக்குநர்களுக்கு முக்கியமானது. கவனிக்க வேண்டிய ஒரு முக்கியமான பகுதி API routes மற்றும் route handlers இடையேயான வேறுபாடாகும். இரண்டும் உருவாக்குநர்களை சர்வர்-சைட் எண்ட்பாயிண்ட்களை (server-side endpoints) உருவாக்க அனுமதிக்கின்றன, ஆனால் அவை வெவ்வேறு வழிகளில் செயல்படுகின்றன. இந்த வேறுபாடுகளை விரிவாக ஆராய்ந்து, எப்போது எதைப் பயன்படுத்த வேண்டும் என்பதைத் தீர்மானிக்க உங்களுக்கு உதவுவோம்.
Next.js API Routes என்றால் என்ன?
Next.js API routes என்பவை Pages Router இன் ஒரு பகுதியாகும். இவற்றை நீங்கள் pages/api டைரக்டரியில் (directory) காணலாம். உங்கள் Next.js திட்டத்தின் இந்த டைரக்டரியில் உள்ள ஒவ்வொரு கோப்பும் ஒரு API endpoint-க்கு இணையானதாகும்.
இந்த routes NextApiRequest மற்றும் NextApiResponse, ஆகியவற்றுடன் செயல்படுகின்றன, இவை Node.js இன் IncomingMessage மற்றும் ServerResponse. ஆகியவற்றின் மெல்லிய உறைகளாகும் (thin wrappers). இதன் பொருள் API routes க்கான ரன்டைம் (runtime) எப்போதும் Node.js ஆகும்.
API routes இன் ஒரு முக்கிய அம்சம் என்னவென்றால், அவை நிலையான கேச்சிங்கை (static caching) ஆதரிப்பதில்லை. ஒவ்வொரு கோரிக்கையும் (request) சர்வர்லெஸ் செயல்பாட்டை (serverless function) இயக்குகிறது, அதாவது கேச்சிங் நடத்தையைக் கட்டுப்படுத்த விரும்பினால், கேச் ஹெடர்களை (cache headers) நீங்களாகவே அமைக்க வேண்டும்.
Route Handlers என்றால் என்ன?
App Router உடன் அறிமுகப்படுத்தப்பட்ட Route handlers, app டைரக்டரியில் அமைந்துள்ளன. அவை route.js அல்லது route.ts. என்று பெயரிடப்பட்ட கோப்புகளில் வரையறுக்கப்படுகின்றன. API routes போலல்லாமல், route handlers Web Fetch API-ஐப் பயன்படுத்துகின்றன, அதாவது அவை வழக்கமான Request மற்றும் Response ஆப்ஜெக்ட்களுடன் (objects) கோரிக்கைகளைக் கையாளுகின்றன.
Route handlers Node.js மற்றும் Edge ஃபேங்ஷன்கள் உட்பட பல்வேறு ரன்டைம்களில் இயங்க முடியும். இந்த நெகிழ்வுத்தன்மை, குறிப்பாக குறைந்த தாமதம் கொண்ட (low-latency) எண்ட்பாயிண்ட்களுக்கு சிறந்த செயல்திறனை வழங்குகிறது. மேலும், route handlers GET கோரிக்கைகளுக்கு நிலையான கேச்சிங்கை ஆதரிக்கின்றன, இவற்றை revalidate மற்றும் runtime.
முக்கிய வேறுபாடுகள்
இரண்டிற்கும் இடையிலான ஒரு விரைவான ஒப்பீடு இதோ:
| அம்சம் | API Routes | Route Handlers |
|---|---|---|
| கோப்பு அமைவிடம் | pages/api/slug.ts |
app/api/slug/route.ts |
| கோரிக்கை வகை | NextApiRequest |
Request (Web Fetch) |
| பதில் வகை | NextApiResponse |
Response (Web Fetch) |
| ரன்டைம் சூழல் | Node.js மட்டும் | Node.js மற்றும் Edge functions |
| கேச்சிங் நடத்தை | நிலையான கேச்சிங் இல்லை; மேனுவல் ஹெடர்கள் | நிலையான கேச்சிங்கை ஆதரிக்கிறது GET |
எப்போது எதைப் பயன்படுத்த வேண்டும்
பின்வரும் சூழல்களில் API Routes பயன்படுத்தவும்:
- எப்போதும் Node.js இல் இயங்கும் சர்வர்-சைட் எண்ட்பாயிண்ட்கள் உங்களுக்குத் தேவைப்படும்போது.
- உங்களுக்கு நிலையான கேச்சிங் தேவைப்படாதபோது.
- உள் கருவிகள் (internal tools) போல, கேச் செய்யப்படக் கூடாத கோரிக்கைகளைக் கையாள விரும்பும்போது.
பின்வரும் சூழல்களில் Route Handlers பயன்படுத்தவும்:
- நீங்கள் App Router உடன் புதிய Next.js திட்டத்தைத் தொடங்குகிறீர்கள்.
- வேகமான பதில்களுக்கு உங்களுக்கு edge runtime தேவைப்படுகிறது.
- API பதில்களுக்கு நிலையான கேச்சிங்கைப் பயன்படுத்த விரும்புகிறீர்கள்.
- நீங்கள் ஸ்ட்ரீமிங் எண்ட்பாயிண்ட்களை உருவாக்குகிறீர்கள் அல்லது ஃபார்ம் ஆக்சன் ஹேண்ட்லர்களை (form action handlers) அவற்றின் பக்கங்களுடன் இணைத்து அமைக்கிறீர்கள்.
மாதிரி குறியீடு
இரு முறைகளையும் பயன்படுத்தி இடுகைகளின் பட்டியலைத் (list of posts) திரும்ப நல்கும் எண்ட்பாயிண்டை எவ்வாறு செயல்படுத்துவது என்பதற்கான விரைவான உதாரணம் இதோ:
API Route உதாரணம்
// pages/api/posts.ts
import type { NextApiRequest, NextApiResponse } from 'next';
import { client } from '@/sanity/client';
type Post = { _id: string; title: string; slug: string };
export default async function handler(req: NextApiRequest, res: NextApiResponse<Post[]>) {
if (req.method !== 'GET') {
res.status(405).end();
return;
}
const posts = await client.fetch<Post[]>(`*[_type == "post"]{ _id, title, "slug": slug.current }`);
res.setHeader('Cache-Control', 's-maxage=60, stale-while-revalidate=300');
res.status(200).json(posts);
}
Route Handler உதாரணம்
// app/api/posts/route.ts
import { NextResponse } from 'next/server';
import { client } from '@/sanity/client';
export const revalidate = 60; // ISR: revalidate every 60 seconds
type Post = { _id: string; title: string; slug: string };
export async function GET() {
const posts = await client.fetch<Post[]>(`*[_type == "post"]{ _id, title, "slug": slug.current }`, {}, { next: { revalidate: 60 }});
return NextResponse.json(posts);
}
முடிவுரை
Next.js API routes மற்றும் route handlers ஆகியவற்றிற்கு இடையே தேர்வு செய்வது உங்கள் திட்டத்தின் தேவைகளைப் பொறுத்தது. அவற்றின் வேறுபாடுகளைப் புரிந்துகொள்வது செயல்திறனை மேம்படுத்தவும் கேச்சிங்கைத் திறம்பட நிர்வகிக்கவும் உதவுகிறது.
நன்மைகள்
- API Routes: பயன்படுத்த எளிதானது, குறைந்த டிராஃபிக் கொண்ட உள் கருவிகளுக்கு ஏற்றது, கேச்சிங் பற்றிய எதிர்பாராத சிக்கல்கள் எதுவும் இல்லை.
- Route Handlers: Edge functions க்கான ஆதரவு, சிறந்த கேச்சிங் கட்டுப்பாடு மற்றும் பொதுவான பணிகளுக்கான சுருக்கமான குறியீடு.
குறைபாடுகள்
- API Routes: கேச்சிங் ஆதரவு இல்லாதது, குறிப்பாக அதிக லோட் இருக்கும் போது, செயல்திறன் சிக்கல்களுக்கு வழிவகுக்கும்.
- Route Handlers: மிகவும் சிக்கலான புரிதல் முறை (mental model) மற்றும் ஏற்கனவே உள்ள உருவாக்குநர்களுக்கு புதிய வடிவங்களைக் கற்க வேண்டியிருக்கலாம்.
எச்சரிக்கை
இந்தக் கட்டுரை கல்வி நோக்கங்களுக்காக மட்டுமே. உங்கள் திட்டங்களில் பிளேஸ்ஹோல்டர் மதிப்புகளை உண்மையான மதிப்புகளுடன் மாற்றுவதை உறுதிசெய்க. தகவல்களை நம்புவதற்கு முன் எப்போதும் மூல ஆதாரத்துடன் சரிபார்க்கவும்.
அடிக்கடி கேட்கப்படும் கேள்விகள்
- Next.js API routes என்றால் என்ன? — அவை Node.js-ஐப் பயன்படுத்தி,
pages/apiடைரக்டரியில் அமைந்துள்ள சர்வர்-சைட் எண்ட்பாயிண்ட்கள் ஆகும். - Next.js இல் route handlers என்றால் என்ன? — அவை Web Fetch API-ஐப் பயன்படுத்தி,
appடைரக்டரியில் அமைந்துள்ள சர்வர்-சைட் எண்ட்பாயிண்ட்கள் ஆகும். - எப்போது API routes-ஐப் பயன்படுத்த வேண்டும்? — கேச்சிங் தேவைகள் இல்லாத எளிய, Node.js-மட்டும் கொண்ட சர்வர்-சைட் செயல்பாடுகளுக்கு அவற்றைப் பயன்படுத்தவும்.
- எப்போது route handlers-ஐப் பயன்படுத்த வேண்டும்? — Edge functions மற்றும் கேச்சிங் திறன்கள் தேவைப்படும் புதிய திட்டங்களுக்கு அவற்றைப் பயன்படுத்தவும்.
- ஒரே திட்டத்தில் API routes மற்றும் route handlers இரண்டையும் பயன்படுத்த முடியுமா? — ஆம், இடம்பெயர்வின் (migration) போது அவை ஒன்றாக இருக்க முடியும்.
- இரண்டிற்கும் இடையே கேச்சிங் வழிமுறைகள் எவ்வாறு வேறுபடுகின்றன? — API routes-க்கு மேனுவல் கேச் ஹெடர்கள் தேவைப்படும், அதே வேளையில் route handlers தானாகவே நிலையான கேச்சிங்கை ஆதரிக்கின்றன.
குறிச்சொற்கள்
#nextjs #approuter #webdevelopment #caching #performance #programming #javascript #webdev
API Security Testing Checklist
A practical workflow for testing authentication, authorization, input handling, business logic, and evidence without losing track of scope.
Free. No spam — unsubscribe in one click.


Responses
Sign in to leave a response.