Random Starlette Function with Middleware and Response Class Selection

  • Share this:

Code introduction


This function is a custom function based on the Starlette framework, which randomly selects a middleware and a response class to build functionality. The function first selects one from the predefined middlewares and response classes, and then performs the corresponding operations based on the selected type.


Technology Stack : Starlette, CORSMiddleware, BaseHTTPMiddleware, JSONResponse

Code Type : Starlette custom function

Code Difficulty : Intermediate


                
                    
from starlette.responses import JSONResponse
from starlette.middleware.cors import CORSMiddleware
from starlette.middleware.base import BaseHTTPMiddleware
import random

def random_starlette_function():
    # Function to generate a random Starlette-based function
    middleware_classes = [CORSMiddleware, BaseHTTPMiddleware]
    response_classes = [JSONResponse]

    middleware = random.choice(middleware_classes)
    response = random.choice(response_classes)

    def custom_middleware(request, call_next):
        # Custom middleware function
        response = call_next(request)
        response.headers['X-Custom-Middleware'] = 'Enabled'
        return response

    def custom_response(data):
        # Custom JSONResponse function
        return response(content=data)

    # Generating the function
    def random_function(request):
        # Random Starlette function using selected middleware and response class
        if isinstance(request, middleware):
            return custom_middleware(request, random_function)
        elif isinstance(request, response):
            return custom_response({"message": "Hello, Starlette!"})
        else:
            return response(content={"error": "Invalid request type"})

    return random_function

# Code details