Bu proje, Go dilini kullanarak htmx
ile dinamik bir web uygulaması oluşturmayı göstermektedir. Go tarafında echo
framework'ü ile sunucu sağlanmaktadır.
Projenizi klonladıktan sonra gerekli bağımlılıkları yüklemek için aşağıdaki adımları izleyin:
git clone https://github.com/emrekndl/htmx-golang.git
cd htmx-golang
go mod tidy
Sunucuyu başlatmak için:
go run main.go
Tarayıcınızdan http://localhost:1323
adresine giderek uygulamayı görüntüleyebilirsiniz.
htmx-golang/
├── cmd/
│ ├── main.go
│ └── class-examples/
│ └── blocks/
│ └── main.go
├── views/
│ ├── index.html
│ ├── blocks.html
│ └── contacts.html
├── css/
│ └── index.css
└── images/
HTMX, HTML özniteliklerini kullanarak modern web uygulamaları geliştirmeyi sağlayan bir JavaScript kütüphanesidir. Daha fazla bilgi için htmx.org adresini ziyaret edebilirsiniz.
Golang, Google tarafından geliştirilmiş açık kaynaklı bir programlama dilidir. Daha fazla bilgi için golang.org adresini ziyaret edebilirsiniz.
Air paketi, Go uygulamalarını geliştirme sürecinde canlı yeniden yükleme (live reload) özelliği sağlar.
Kurmak için:
go install github.com/air-verse/air@latest
index.html
dosyasında bir butona tıklandığında bir GET isteği gönderen basit bir örnek:
<button hx-get="/message" hx-target="#message">Mesajı Göster</button>
<div id="message"></div>
main.go
dosyasında ilgili endpoint'i tanımlama:
package main
import (
"net/http"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
)
func main() {
e := echo.New()
e.Use(middleware.Logger())
e.Use(middleware.Recover())
e.GET("/", func(c echo.Context) error {
return c.Render(http.StatusOK, "index.html", nil)
})
e.GET("/message", func(c echo.Context) error {
return c.String(http.StatusOK, "Merhaba, HTMX ile Go!")
})
e.Logger.Fatal(e.Start(":8080"))
}