Middleware Generator

The Middleware Generator creates middleware components that can be used to process HTTP requests and responses in your Azu application.

Usage

azu generate middleware MIDDLEWARE_NAME [OPTIONS]

Description

Middleware in Azu applications provides a way to process HTTP requests and responses before they reach your endpoints or after they leave them. Common uses include authentication, logging, CORS handling, and request/response transformation.

Options

  • MIDDLEWARE_NAME - Name of the middleware to generate (required)

  • -d, --description DESCRIPTION - Description of the middleware

  • -t, --template TEMPLATE - Template to use (default: basic)

  • -f, --force - Overwrite existing files

  • -h, --help - Show help message

Examples

Generate a basic middleware

This creates:

  • src/middleware/auth_middleware.cr - The middleware class

  • spec/middleware/auth_middleware_spec.cr - Test file

Generate middleware with description

Generate specific middleware types

Generated Files

Middleware Class (src/middleware/MIDDLEWARE_NAME.cr)

Test File (spec/middleware/MIDDLEWARE_NAME_spec.cr)

Middleware Patterns

Basic Middleware Pattern

Authentication Middleware

CORS Middleware

Rate Limiting Middleware

Using Middleware

Global Middleware

Register middleware globally in your application:

Route-Specific Middleware

Apply middleware to specific routes:

Conditional Middleware

Apply middleware conditionally:

Best Practices

1. Keep Middleware Focused

Each middleware should have a single responsibility:

2. Handle Errors Gracefully

3. Use Configuration

Make middleware configurable:

4. Performance Considerations

Testing Middleware

Unit Testing

Integration Testing

Common Middleware Types

1. Authentication & Authorization

2. Request/Response Transformation

3. Monitoring & Metrics

  • azu generate endpoint - Generate API endpoints

  • azu generate service - Generate business logic services

  • azu generate contract - Generate validation contracts

  • azu generate model - Generate data models

Templates

The middleware generator supports different templates:

  • basic - Simple middleware with basic structure

  • auth - Authentication middleware template

  • cors - CORS handling middleware

  • logging - Request/response logging middleware

  • rate_limit - Rate limiting middleware

To use a specific template:

Last updated