package handlers import ( "context" "net/http" "github.com/gin-gonic/gin" ) type HelloUsecase interface { Message(ctx context.Context) string } type HelloHandler struct { helloUsecase HelloUsecase } func NewHelloHandler(helloUsecase HelloUsecase) *HelloHandler { return &HelloHandler{helloUsecase: helloUsecase} } func (h *HelloHandler) Hello(c *gin.Context) { message := h.helloUsecase.Message(c.Request.Context()) c.JSON(http.StatusOK, gin.H{"message": message}) }