v1.2.0
New web development experience
We are excited to announce the addition of a brand new Web package to go-spring framework. This package provides developers with a simple, flexible, and powerful way to build web applications.
# http server config
http:
# listen address
addr: ":8080"
package main
import (
"context"
"log/slog"
"github.com/go-spring-projects/go-spring/gs"
"github.com/go-spring-projects/go-spring/web"
_ "github.com/go-spring-projects/go-spring/web/starter"
)
type Greeting struct {
Logger *slog.Logger `logger:""`
Server *web.Server `autowire:""`
}
func (g *Greeting) OnInit(ctx context.Context) error {
g.Server.Get("/greeting", g.Greeting)
g.Server.Post("/feedback", g.Feedback)
return nil
}
func (g *Greeting) Greeting(ctx context.Context) string {
return "Greeting!!!"
}
func (g *Greeting) Feedback(
ctx context.Context,
req struct {
Title string `form:"title"`
Message string `form:"message"`
EMail string `form:"email"`
UserAgent string `header:"User-Agent"`
},
) string {
g.Logger.Info("received user feedback",
slog.String("title", req.Title),
slog.String("message", req.Message),
slog.String("email", req.EMail),
slog.String("user-Agent", req.UserAgent),
)
//TODO: save feedback to database.
//
return "Thanks for your feedback!!!"
}
func main() {
gs.Object(new(Greeting))
if err := gs.Run(); nil != err {
panic(err)
}
}
What's Changed
- Add web package for web applications support by @limpo1989 in #9
- Fix method bean parent resolve incorrect by @limpo1989 in #10
- Refactor web.Renderer interface by @limpo1989 in #11
- Add server route method
Get/Head/Post/Put/Patch/Delete/Connect/Options/Trace
by @limpo1989 in #12 - Ignore non-existent parameters when binding parameters by @limpo1989 in #13
Full Changelog: v1.1.1...v1.2.0