पाठ 15 / 30
Encapsulation और Scope
Conflicts से बचने के लिए plugins, routes, और hooks को ठीक से scoped रखें।
Plugin scope isolation
एक plugin के अंदर registered plugins उस plugin के लिए scoped होते हैं। Decorators, hooks, और routes sibling plugins में leak नहीं होते।
Nested plugins
एक plugin को register करके sub-apps बनाएँ जो child plugins को register करता है।
// routes/v1.js
export default async function v1Routes(fastify, opts) {
fastify.get('/health', async () => ({ version: '1' }));
}
// routes/v2.js
export default async function v2Routes(fastify, opts) {
fastify.get('/health', async () => ({ version: '2' }));
}
// server.js
fastify.register(v1Routes, { prefix: '/v1' });
fastify.register(v2Routes, { prefix: '/v2' });
// GET /v1/health -> { version: '1' }
// GET /v2/health -> { version: '2' }