Golang: Отслеживание URL и вывод данных на сайте

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

Необходимые пакеты

Для работы нам потребуются пакеты net/http (для обработки HTTP-запросов) и fmt (для форматированного вывода). Импортируем их следующим образом:

import (
t"fmt"
t"net/http"
)

Обработка URL-адресов с помощью HandleFunc

В функции main используем функцию http.HandleFunc. Она принимает два аргумента:

  • URL-адрес для отслеживания (например, / для главной страницы, /about для страницы «О нас»).
  • Функция-обработчик, вызываемая при переходе на указанный URL-адрес.

Пример:

http.HandleFunc("/", homePage)

Здесь при переходе на / вызывается функция homePage.

Создание и запуск локального сервера

Запускаем локальный сервер с помощью http.ListenAndServe:

http.ListenAndServe(":8080", nil)

Первый аргумент — порт (8080), второй — nil (отсутствие дополнительных параметров).

Функция-обработчик homePage

Функция homePage обрабатывает запросы к главной странице. Она принимает:

  • w типа http.ResponseWriter — для отправки ответа пользователю.
  • r типа *http.Request — информацию о запросе.

Пример:

func homePage(w http.ResponseWriter, r *http.Request) {
tfmt.Fprintf(w, "Go is super easy!")
}

На страницу выводится текст «Go is super easy!». Рекомендуется использовать английский язык и латинские символы до настройки кодировки.

Обработка дополнительных URL-адресов

Добавим обработку для страницы /contacts:

http.HandleFunc("/contacts/", contactsPage)

func contactsPage(w http.ResponseWriter, r *http.Request) {
tfmt.Fprintf(w, "Contact Page")
}

Обратите внимание на слэш в конце /contacts/.

Запуск и тестирование

Запускаем приложение командой:

go run main.go

Открываем браузер и переходим по адресу localhost:8080.

В этом уроке мы научились создавать простой веб-сайт на Golang, обрабатывая различные URL-адреса. В следующих уроках рассмотрим работу с данными и создание HTML-шаблонов.

Что будем искать? Например,программа