Sobes.tech
Junior — Middle

Qual padrão de projeto é aplicado no middleware?

sobes.tech IA

Resposta da IA

No middleware, frequentemente é utilizado o padrão de projeto Chain of Responsibility (Cadeia de Responsabilidade). Este padrão permite passar pedidos por uma cadeia de manipuladores, onde cada manipulador decide se deve processar o pedido ou passá-lo adiante. No contexto do middleware, isso é útil para processamento sequencial de pedidos e respostas, por exemplo, para autenticação, registo, tratamento de erros, etc.

Exemplo em Python (simplificado):

class Middleware:
    def __init__(self, next_middleware=None):
        self.next = next_middleware

    def handle(self, request):
        # processamento do pedido
        if self.next:
            return self.next.handle(request)
        return None

class AuthMiddleware(Middleware):
    def handle(self, request):
        if not request.get('user'):
            return 'Não autorizado'
        return super().handle(request)

class LoggingMiddleware(Middleware):
    def handle(self, request):
        print(f"Pedido: {request}")
        return super().handle(request)

# Criação da cadeia
middleware = AuthMiddleware(LoggingMiddleware())
response = middleware.handle({'user': 'Alice'})