A Arquitetura Hexagonal consiste em três elementos: adaptador, porta e aplicação central. Como é processada uma requisição de entrada através do handler até ao modelo de domínio?
sobes.tech IA
Resposta da IA
Na Arquitetura Hexagonal, a solicitação de entrada primeiro chega a um adaptador, que serve como interface entre o mundo exterior e a aplicação. Por exemplo, um manipulador HTTP em Go recebe a solicitação e a converte numa chamada a uma porta, que é uma interface que define as operações disponíveis para a aplicação central.
A porta encapsula a lógica de negócio e define os contratos de interação. O manipulador chama os métodos da porta, passando os dados necessários. A aplicação central (modelo de domínio) implementa a lógica, baseando-se nos dados da porta, e devolve o resultado.
Exemplo em Go:
// Porta
type UserService interface {
CreateUser(name string) error
}
// Adaptador (manipulador HTTP)
func CreateUserHandler(svc UserService) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
name := r.FormValue("name")
err := svc.CreateUser(name)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.WriteHeader(http.StatusCreated)
}
}
Desta forma, o manipulador adapta a solicitação externa para uma chamada à porta, que é implementada na aplicação central (modelo de domínio).