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'})