http_api.go 1019 B

1234567891011121314151617181920212223242526272829303132333435
  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"
  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.NewRes(sf)
  24. }
  25. // Возвращает текущее время сервера.
  26. func (sf *HttpApi) postTime(ctx fiber.Ctx) error {
  27. aTime := voc.NewETime(voc.VTimeOptDefault())
  28. return ctx.SendString(aTime.String())
  29. }