Performance: Swagger/OpenAPI specification
This affects the initial page load speed and bundle size of API documentation UI and can impact server response time if not optimized.
const swaggerUi = require('swagger-ui-express'); const path = require('path'); app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(null, { swaggerOptions: { url: '/swagger.json' } })); app.get('/swagger.json', (req, res) => { res.sendFile(path.join(__dirname, 'optimized-swagger.json')); });
const swaggerUi = require('swagger-ui-express'); const swaggerDocument = require('./large-swagger.json'); app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Load large Swagger JSON inline | High (many nodes for docs) | Multiple reflows during render | High paint cost due to complex UI | [X] Bad |
| Lazy load Swagger JSON via URL | Moderate (only rendered on demand) | Single reflow after load | Moderate paint cost | [OK] Good |
{
"paths": {
"/users": {
"post": {
"summary": "Create a new user",
"responses": {
"201": {"description": "User created"}
}
}
}
}
}import swaggerUi from 'swagger-ui-express';
import swaggerDocument from './swagger.json';
app.use('/docs', swaggerUi.serve, swaggerUi.setup());Pass the test and this pattern moves unknown