package {{.Name}} import ( "context" "github.com/wailsapp/wails/v3/pkg/application" ) // ---------------- Service Setup ---------------- // This is the main service struct. It can be named anything you like. // Both the ServiceStartup() and ServiceShutdown() methods are called synchronously when the app starts and stops. // Changing the name of this struct will change the name of the services class in the frontend // Bound methods will exist inside frontend/bindings/github.com/user/{{.Name}} under the name of the struct type MyService struct{ ctx context.Context options application.ServiceOptions } // ServiceName is the name of the service func (p *MyService) ServiceName() string { return "{{.Name}}" } // ServiceStartup is called when the app is starting up. You can use this to // initialise any resources you need. You can also access the application // instance via the app property. // OPTIONAL: This method is optional. func (p *MyService) ServiceStartup(ctx context.Context, options application.ServiceOptions) error { p.ctx = ctx p.options = options return nil } // ServiceShutdown is called when the app is shutting down via runtime.Quit() call // You can use this to clean up any resources you have allocated // OPTIONAL: This method is optional. func (p *MyService) ServiceShutdown() error { return nil } // ServeHTTP is called when the app is running and the frontend makes an HTTP request to the backend at the path // specified in the `Route` field of the service Options. // OPTIONAL: This method is optional. func (p *MyService) ServeHTTP(w http.ResponseWriter, r *http.Request) { // You can use the request to get the path, query parameters, headers, etc. // You can also use the response to set the status code, headers, body etc. // Consult the net/http documentation for more information: https://pkg.go.dev/net/http // Log the request to the console log.Printf("Received request: %s %s", r.Method, r.URL.Path) } // ---------------- Service Methods ---------------- // Service methods are just normal Go methods. You can add as many as you like. // The only requirement is that they are exported (start with a capital letter). // You can also return any type that is JSON serializable. // See https://golang.org/pkg/encoding/json/#Marshal for more information. func (p *MyService) Greet(name string) string { return "Hello " + name }