http_api.go 952 B

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