Bläddra i källkod

SVI Добавление обработчика

SVI 2 år sedan
förälder
incheckning
758fe65aaa
2 ändrade filer med 12 tillägg och 5 borttagningar
  1. 5 5
      README.md
  2. 7 0
      internal/serv_http/serv_http.go

+ 5 - 5
README.md

@@ -6,12 +6,12 @@
 
 Хранилище `ключ-значение` работает поверх HTTP1.1/ip4.
 
-Выполняет следующие POST-запросы:
+Выполняет следующие запросы:
 
-* [ ] `/put/:login/:pass/:key` (поместить в хранилище);
-* [ ] `/get/:login/:pass/:key` (извлечь из хранилища);
-* [ ] `/del/:login/:pass/:key` (удалить из хранилища).
-* [ ] `/time` (возвращает текущее время на сервере; для поддержания `KeepAlive`).
+* [ ] `/put/:login/:pass/:key` (POST, поместить в хранилище);
+* [ ] `/get/:login/:pass/:key` (POST, извлечь из хранилища);
+* [ ] `/del/:login/:pass/:key` (POST, удалить из хранилища).
+* [x] `/time` (GET, возвращает текущее время на сервере; для поддержания `KeepAlive`).
 
 Запросы сделанными классическими специально, чтобы гарантировать праильную работу через прокси.
 

+ 7 - 0
internal/serv_http/serv_http.go

@@ -87,9 +87,16 @@ func NewServHttp(serv types.IService) (types.IServHttp, error) {
 		fiberApp: app,
 		port:     port,
 	}
+	sf.fiberApp.Get("/time", sf.getTime)
 	return sf, nil
 }
 
+// getTime -- возвращает ответ с меткой времени (для KeepAlive)
+func (sf *ServHttp) getTime(ctx *fiber.Ctx) error {
+	ctx.Response().Header.Add("Cache-Control", "no-cache") // Cache-Control: no-cache
+	return ctx.SendString(time.Now().Local().String())
+}
+
 // Run -- запускает веб-сервер в работу
 func (sf *ServHttp) Run() error {
 	err := sf.fiberApp.Listen(":" + sf.port)