http_api.go 1010 B

123456789101112131415161718192021222324252627282930313233343536
  1. // package http_api -- различные API для работы веб-морды.
  2. package http_api
  3. import (
  4. "fmt"
  5. "github.com/gofiber/fiber/v3"
  6. mL0 "gitp78su.ipnodns.ru/svi/kern/v4/lev0"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/voc/etime"
  8. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/kctx"
  9. )
  10. // HttpApi -- различные API для работы веб-морды.
  11. type HttpApi struct{}
  12. // NewHttpApi -- возвращает новое HttpApi.
  13. func NewHttpApi() mL0.IResult[*HttpApi] {
  14. sf := &HttpApi{}
  15. kCtx := kctx.GetKernelCtx()
  16. optFiber := kCtx.Get("fiberApp")
  17. if optFiber.IsNone() {
  18. err := fmt.Errorf("NewHttpApi(): not found fiberApp in kernel ctx")
  19. return mL0.NewErr[*HttpApi](err)
  20. }
  21. fiberApp := optFiber.Some().Val().(*fiber.App)
  22. fiberApp.Post("/api_time", sf.postTime)
  23. return mL0.NewOk(sf)
  24. }
  25. // Возвращает текущее время сервера.
  26. func (sf *HttpApi) postTime(ctx fiber.Ctx) error {
  27. aTime := etime.NewETimeAuto()
  28. return ctx.SendString(aTime.String())
  29. }