Skip to content

v1.2.0

Compare
Choose a tag to compare
@limpo1989 limpo1989 released this 07 Dec 03:19
· 16 commits to master since this release
8eebf1b

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