Cache
O middleware de cache usa uma abordagem de inversão de dependência para integração com o Redis. Em vez de depender diretamente de uma biblioteca cliente Redis específica, ele define uma interface RedisClient à qual qualquer implementação Redis pode se adaptar. Esse design oferece vários benefícios:
Flexibilidade: você pode usar qualquer biblioteca cliente Redis (go-redis, redigo, etc.) criando um adaptador que implemente a interface.
Desacoplamento: o middleware não precisa saber os detalhes específicos de como o Redis é acessado.
Testabilidade: facilita a criação de simulações para testes de unidade, conforme demonstrado no exemplo redis.mock.
Adaptabilidade: se a API do Redis mudar ou se você quiser mudar para outro sistema de armazenamento, basta modificar o adaptador.
Controle de dependência: evita dependências diretas de bibliotecas externas, prevenindo conflitos de versão.
// Function signature
app.Use(cache.New())