DevGang
Авторизоваться

Узнайте о Fiber, новой платформе веб-разработки Golang 

Этот фреймворк меня восхищает, потому что он действительно ориентирован на веб-разработку, что мне очень нравится.

Это фреймворк, вдохновленный фреймворком Node.js Express и построенный на основе Fasthttp. И, как и другие фреймворки, он очень помогает вам начать создавать свои веб-приложения на Go.

Требования

На вашем компьютере должен быть установлен Go.

Начнем

Для начала создайте новый проект Go. Создайте новый файл с именем main.go и введите следующий стартовый код:

package main

func main() {}

Чтобы установить этот фреймворк, выполните следующую команду в командной строке или в терминале / bash:

go get github.com/gofiber/fiber/v2

Это позволит вам установить fiber модуль. Теперь вы можете импортировать это в свой файл main.go:

package main

import "github.com/gofiber/fiber/v2"

func main() {}

Теперь вы можете использовать фреймворк.

Создаем приложение с Fiber

Ниже представлено простейшее приложение Fiber, которое вы можете себе представить. Мы рассмотрим это строка за строкой:

package main

import "github.com/gofiber/fiber/v2"

func main() {
    app := fiber.New()
    
    app.Get("/", func(c *fiber.Ctx) error {
        return c.SendString("Hello, World!")
    })

    app.Listen(":3000")
}

Внутри основной функции вы видите следующие строки кода:

app := fiber.new()

Это инициализирует новый экземпляр приложения Fiber, как и в случае с Express в Node. На самом деле это очень похоже, поэтому, если вы раньше использовали Express, в этом не будет ничего нового.

app.Get("/", func(c *fiber.Ctx) error {

Это ваша строка кода маршрута. На этом маршрутизация завершена. Когда вы хотите использовать GET запрос, вы используете .Get(). Когда вы хотите использовать POST запрос, вы просто используете .Post(). После этого вы увидите функцию обратного вызова, у которой есть параметр ответа, который определен как c и возможная обработка ошибок после этого.

return c.SendString("Hello, World!")

В этой строке будет возвращен ответ. Это простая строка, возвращаемая с помощью Hello World.

В нижней строке мы видим, что порт прослушивания 3000:

app.Listen(":3000")

Поэтому, когда вы запустите этот сервер с go run main.go, он запустит веб-сервер на порту 3000 вашего локального хоста. Если вы посетите этот адрес в своем браузере, отобразится простой текст Hello World.

Расширенная маршрутизация

Давайте погрузимся в расширенную маршрутизацию, поскольку простой  запрос GET или POST без каких-либо параметров не очень удобен.

Чтобы было понятно, это самый простой путь:

app.Get("/", func(c *fiber.Ctx) error {
  return c.SendString("Hello, World!")
})

А если вы хотите сделать его более динамичным, вы можете добавить параметры:

app.Get("/:value", func(c *fiber.Ctx) error {
  return c.SendString("value: " + c.Params("value"))
})

Итак, после /, мы видим :value, это параметр, который может означать что угодно. Это может быть номер страницы, имя пользователя, что угодно. В return мы видим, что значение этого параметра было возвращено в ответе.

Статические файлы

Как и в случае с любой другой структурой веб-разработки, у нас есть статические файлы, которые будут обслуживаться на наших серверах. Чтобы создать папку со статическим файлом, мы делаем следующее:

app.Static("/", "./public")

Это очень просто: первый аргумент принимает маршрут, а второй - его путь.

Шаблоны

Теперь перейдем к визуальной части этого фреймворка - добавлению шаблонов. Какой веб-сайт без внешнего интерфейса?

Golang's Fiber имеет интерфейс для представлений:

type Views interface {
    Load() error
    Render(io.Writer, string, interface{}, ...string) error
}

Интерфейс Views содержит методы Load и Render. Load выполняется Fiber при инициализации приложения для загрузки / анализа шаблонов.

app := fiber.New(fiber.Config{Views: engine,})

Метод Render связан с функцией ctx.Render(), которая принимает имя шаблона и связывание данных.

app.Get("/", func(c *fiber.Ctx) error {
    return c.Render("index", fiber.Map{
        "hello": "world",
    });
})

Для наглядности вы храните файлы шаблонов в папке /views в корне.

Заключение

В этом примере представлено простое приложение Fiber, написанное с использованием Go. Если вам интересна данная тема, пишите комментарии, мы обязательно продолжим ее развивать.

#Golang
Комментарии 1
Stas Rubtsov 01.03.2023 в 17:07

Очень интересно. Хотелось бы увидеть пример сайта, с использованием mysql . Или другой sql.

Чтобы оставить комментарий, необходимо авторизоваться