रूटिंग और मिडलवेयर
अपने Worker API को व्यवस्थित और बेहतर बनाने के लिए रूटिंग लाइब्रेरी और मिडलवेयर पैटर्न का उपयोग करें
रूटिंग और मिडलवेयर, CoddyKit पर Cloudflare Workers और Deno के साथ एज कंप्यूटिंग का एक निःशुल्क पाठ है। यह 3 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Cloudflare Workers और Deno के साथ एज कंप्यूटिंग सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Cloudflare Workers और Deno के साथ एज कंप्यूटिंग पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
API रूटिंग की आवश्यक बातें
API बनाते समय हमें आने वाले अनुरोधों को उनके URL पथ और HTTP विधि (GET, POST आदि) के आधार पर सही फ़ंक्शन तक पहुँचाने का तरीका चाहिए। इस प्रक्रिया को रूटिंग कहा जाता है।
इसे अपने API के रिसेप्शनिस्ट की तरह समझिए। अनुरोध आने पर राउटर उसके गंतव्य की जाँच करता है और उसे सही विभाग (आपके कोड हैंडलर) तक भेजता है।
मैन्युअल वर्कर रूटिंग
Cloudflare Worker में आने वाले सभी अनुरोधों को fetch इवेंट लिसनर संभालता है। आप अनुरोध के URL और विधि की मैन्युअल रूप से जाँच करके तय कर सकते हैं कि क्या करना है।
सरल मामलों में यह संभव है, लेकिन आपका API बढ़ने पर यह तरीका जल्दी ही जटिल और प्रबंधित करना कठिन हो जाता है।
export default {
async fetch(request) {
const url = new URL(request.url);
if (url.pathname === '/hello' && request.method === 'GET') {
return new Response('Hello from manual route!');
}
return new Response('Not Found', { status: 404 });
}
}itty-router का परिचय
रूटिंग को सरल बनाने के लिए हम हल्की लाइब्रेरी का उपयोग करते हैं। Cloudflare Workers के लिए इट्टी-राउटर एक लोकप्रिय विकल्प है। यह छोटा, तेज़ और एज के लिए डिज़ाइन किया गया है।
यह रूट और हैंडलर परिभाषित करने का एक साफ़ और अभिव्यंजक तरीका प्रदान करता है, जिससे आपके Worker का कोड अधिक व्यवस्थित हो जाता है।
मूल GET रूट
itty-router के साथ आप GET अनुरोधों के लिए router.get() जैसी विधियों का उपयोग करके रूट परिभाषित कर सकते हैं। प्रत्येक रूट में एक पथ और एक हैंडलर फ़ंक्शन होता है।
आइए ऐसा सरल Worker बनाएँ जो / और /greet का उत्तर दे।
import { Router } from 'itty-router';
const router = Router();
router.get('/', () => new Response('Welcome to the API!'));
router.get('/greet', () => new Response('Hello there!'));
export default {
fetch: router.handle
};सभी HTTP विधियों को संभालना
itty-router आपको .post(), .put(), .delete() जैसी विशिष्ट HTTP विधियों के लिए रूट परिभाषित करने देता है।
आप किसी दिए गए पथ के लिए किसी भी HTTP विधि से मिलान करने हेतु .all() का भी उपयोग कर सकते हैं। यह मिडलवेयर या सामान्य हैंडलर के लिए उपयोगी है।
import { Router } from 'itty-router';
const router = Router();
router.get('/data', () => new Response('GET data'));
router.post('/data', () => new Response('POST data', { status: 201 }));
router.all('*', () => new Response('Method Not Allowed', { status: 405 }));
export default {
fetch: router.handle
};डायनेमिक रूट पैरामीटर
अक्सर आपको URL से डायनेमिक मान निकालने की आवश्यकता होती है, जैसे किसी वस्तु की ID या उपयोगकर्ता नाम। इन्हें रूट पैरामीटर कहा जाता है।
itty-router रूट पथ में पैरामीटर परिभाषित करने के लिए कोलन (:) का उपयोग करता है। इसके बाद ये मान हैंडलर के request.params ऑब्जेक्ट में उपलब्ध होते हैं।
import { Router } from 'itty-router';
const router = Router();
router.get('/users/:id', ({ params }) => {
return new Response(`Fetching user ${params.id}`);
});
export default {
fetch: router.handle
};मिडलवेयर क्या है
मिडलवेयर फ़ंक्शन ऐसे कोड अंश होते हैं जो आपके मुख्य रूट हैंडलर से पहले या बाद में चलते हैं। वे अनुरोध में बदलाव कर सकते हैं, लॉगिंग कर सकते हैं, प्रमाणीकरण जाँच सकते हैं या उत्तर में हेडर जोड़ सकते हैं।
वे एक पाइपलाइन की तरह काम करते हैं, जिससे कोड दोहराए बिना आप अनेक रूट में सामान्य कार्यक्षमताएँ जोड़ सकते हैं।
सरल मिडलवेयर लागू करना
itty-router के साथ मिडलवेयर को विशिष्ट रूट में या वैश्विक रूप से जोड़ा जा सकता है। मिडलवेयर फ़ंक्शन अनुरोध प्राप्त करता है और उत्तर लौटा सकता है (जिससे श्रृंखला समाप्त हो जाती है) या अगले हैंडलर तक आगे बढ़ सकता है।
आइए ऐसा सरल लॉगिंग मिडलवेयर जोड़ें जो हर अनुरोध के लिए चले।
import { Router } from 'itty-router';
const router = Router();
const loggerMiddleware = async (request, event) => {
console.log(`Request: ${request.method} ${request.url}`);
// To proceed to the next handler, don't return a Response.
// If you return a Response, the chain stops.
};
router.all('*', loggerMiddleware);
router.get('/hello', () => new Response('Hello from route!'));
export default {
fetch: router.handle
};मिडलवेयर को श्रृंखला में जोड़ना
आप कई मिडलवेयर फ़ंक्शन को एक श्रृंखला में जोड़ सकते हैं। प्रत्येक मिडलवेयर क्रम से चलता है। यदि कोई मिडलवेयर उत्तर नहीं लौटाता है, तो श्रृंखला में अगला मिडलवेयर (या अंतिम रूट हैंडलर) बुलाया जाता है।
इससे अनुरोधों की शक्तिशाली और मॉड्यूलर प्रोसेसिंग संभव होती है, जैसे प्रमाणीकरण, डेटा पार्स करना और लॉगिंग।
import { Router } from 'itty-router';
const router = Router();
const authMiddleware = async (request) => {
if (request.headers.get('Authorization') !== 'Bearer token123') {
return new Response('Unauthorized', { status: 401 });
}
};
const headerMiddleware = async (request, event) => {
// Add a custom header to the response later
event.response = new Response('', { headers: { 'X-Powered-By': 'CoddyKit' } });
};
router.get('/secure', authMiddleware, (request) => {
return new Response('Access granted!');
});
router.get('/info', headerMiddleware, (request) => {
return new Response('Info page');
});
export default {
fetch: async (request, env, ctx) => {
const response = await router.handle(request, env, ctx);
// Merge headers from middleware if present
if (ctx.response && response) {
for (let [key, value] of ctx.response.headers.entries()) {
response.headers.set(key, value);
}
}
return response;
}
};रूटिंग और मिडलवेयर जाँच
मान लीजिए कि आप itty-router का उपयोग करने वाला Cloudflare Worker बना रहे हैं। आप यह सुनिश्चित करना चाहते हैं कि /admin/* पथ वाले सभी अनुरोधों में X-Admin-Key हेडर आवश्यक हो और उसके न होने पर 403 Forbidden उत्तर लौटे। अन्य पथ प्रभावित नहीं होने चाहिए।
पुनरावलोकन: रूटिंग और मिडलवेयर
आपने रूटिंग और मिडलवेयर की सहायता से अपने एज API को व्यवस्थित करने की मूल बातें अच्छी तरह सीख ली हैं!
- रूटिंग अनुरोधों को सही हैंडलर तक पहुँचाती है।
itty-routerजैसी लाइब्रेरी डायनेमिक पैरामीटर सहित रूट परिभाषित करना सरल बनाती हैं।- मिडलवेयर फ़ंक्शन अनुरोधों और उत्तरों को बेहतर बनाते हैं तथा मुख्य हैंडलर से पहले (या बाद में) लॉगिंग या प्रमाणीकरण जैसी सामान्य कार्यक्षमता जोड़ते हैं।
एज पर ऐसे पैटर्न स्केलेबल और आसानी से बनाए रखे जा सकने वाले सर्वरलेस API बनाने के लिए अत्यंत महत्वपूर्ण हैं।
एआई शिक्षक के साथ Cloudflare Workers और Deno के साथ एज कंप्यूटिंग सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 47
अक्सर पूछे जाने वाले प्रश्न
क्या “रूटिंग और मिडलवेयर” पाठ निःशुल्क है?
हाँ—“रूटिंग और मिडलवेयर” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Cloudflare Workers और Deno के साथ एज कंप्यूटिंग पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Cloudflare Workers और Deno के साथ एज कंप्यूटिंग पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“रूटिंग और मिडलवेयर” में मैं क्या सीखूँगा?
अपने Worker API को व्यवस्थित और बेहतर बनाने के लिए रूटिंग लाइब्रेरी और मिडलवेयर पैटर्न का उपयोग करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Cloudflare Workers और Deno के साथ एज कंप्यूटिंग का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Cloudflare Workers और Deno के साथ एज कंप्यूटिंग शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Cloudflare Workers और Deno के साथ एज कंप्यूटिंग शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 2वाँ पाठ है।
“रूटिंग और मिडलवेयर” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Cloudflare Workers और Deno के साथ एज कंप्यूटिंग पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Cloudflare Workers और Deno के साथ एज कंप्यूटिंग पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- RESTful API की रूपरेखा बनाना
- रूटिंग और मिडलवेयर
- सत्यापन और त्रुटि-प्रबंधन