В библиотеке Fiber для языка программирования Go нет нативной функции, аналогичной функции "set" в Gin, которая записывает пару ключ/значение в определенном контексте. Однако, Fiber предоставляет механизм работы с контекстом через middleware, который позволяет хранить и передавать данные внутри обработчиков запросов.
Middleware - это функция, которая выполняется перед обработкой каждого запроса. Она может получать доступ к контексту запроса и модифицировать его.
Для реализации записи и передачи пары ключ/значение в контексте Fiber вы можете создать и использовать собственный middleware. Пример кода, демонстрирующий это:
package main import ( "fmt" "github.com/gofiber/fiber/v2" ) func myMiddleware(ctx *fiber.Ctx) error { // Записываем пару ключ/значение в контексте ctx.Locals("myKey", "myValue") return ctx.Next() } func myHandler(ctx *fiber.Ctx) error { // Получаем значение по ключу из контекста value := ctx.Locals("myKey") // Выводим значение в консоль fmt.Println(value) // Возвращаем ответ клиенту return ctx.SendString("Hello, Fiber!") } func main() { app := fiber.New() // Подключаем наш middleware app.Use(myMiddleware) // Определяем обработчик запроса app.Get("/", myHandler) // Запускаем сервер app.Listen(":3000") }
В данном примере мы создали middleware myMiddleware
, который записывает пару ключ/значение "myKey"/"myValue" в контексте запроса с помощью метода Locals()
. Затем мы определили обработчик запроса myHandler
, который получает значение по ключу из контекста и выводит его в консоль.
При обработке каждого запроса через ctx.Next()
middleware выполняется перед тем, как передать обработку следующему middleware или обработчику запроса.
Однако, важно отметить, что контекст Fiber является горутинобезопасным и мутировать его внутри middleware может привести к состоянию гонки. Поэтому рекомендуется использовать middleware и контекст Fiber для чтения данных и передачи информации между обработчиками запросов, а для долгосрочного хранения данных рекомендуется использовать базу данных или кэш.