/HelloWorldRestController.go

package quickstart

import (
	"context"
	"net/http"

	cref "github.com/pip-services4/pip-services4-go/pip-services4-components-go/refer"
	rpc "github.com/pip-services4/pip-services4-go/pip-services4-http-go/controllers"
)

type HelloWorldRestController struct {
	*rpc.RestController
	service *HelloWorldService
}

func NewHelloWorldRestController() *HelloWorldRestController {
	c := &HelloWorldRestController{}
	c.RestController = rpc.InheritRestController(c)
	c.BaseRoute = "/hello_world"
	c.DependencyResolver.Put(context.Background(), "service", cref.NewDescriptor("hello-world", "service", "*", "*", "1.0"))
	return c
}

func (c *HelloWorldRestController) SetReferences(ctx context.Context, references cref.IReferences) {
	c.RestController.SetReferences(ctx, references)
	depRes, depErr := c.DependencyResolver.GetOneRequired("service")
	if depErr == nil && depRes != nil {
		c.service = depRes.(*HelloWorldService)
	}
}

func (c *HelloWorldRestController) greeting(res http.ResponseWriter, req *http.Request) {
	name := req.URL.Query().Get("name")
	result, err := c.service.Greeting(req.Context(), name)
	c.SendResult(res, req, result, err)
}

func (c *HelloWorldRestController) Register() {
	c.RegisterRoute("get", "/greeting", nil, c.greeting)
}