Как написать HTTP-сервер на Go за 5 минут

5 минут чтения
Средний рейтинг статьи — 4.8

Go (или Golang) — это удобный язык для создания высокопроизводительных веб-серверов. Благодаря стандартной библиотеке, можно запустить HTTP-сервер буквально за несколько минут. В этом руководстве мы создадим простой HTTP-сервер на Go, который будет обрабатывать запросы и возвращать ответы.

1. Установка Go

Если у вас еще не установлен Go, скачайте и установите его с официального сайта. После установки убедитесь, что Go установлен, выполнив команду:

 go version

2. Создание простого HTTP-сервера

Создадим файл main.go и добавим в него следующий код:

package main
 
import (
	"fmt"
	"net/http"
)
 
func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "Hello, World!")
}
 
func main() {
	http.HandleFunc("/", handler)
	fmt.Println("Сервер запущен на http://localhost:8080")
	http.ListenAndServe(":8080", nil)
}

Этот код выполняет следующие действия:

  1. Импортирует необходимые пакеты (fmt, net/http).
  2. Определяет обработчик handler, который отвечает строкой "Hello, World!".
  3. Регистрирует маршрут / и запускает сервер на порту 8080.

3. Запуск сервера

Сохраните файл и выполните команду:

go run main.go

После этого откройте браузер и перейдите по адресу: http://localhost:8080. Вы увидите сообщение "Hello, World!".

4. Добавление маршрутов

Теперь добавим еще один маршрут /ping, который будет возвращать JSON-ответ:

import (
	"encoding/json"
)
 
func pingHandler(w http.ResponseWriter, r *http.Request) {
	response := map[string]string{"message": "pong"}
	w.Header().Set("Content-Type", "application/json")
	json.NewEncoder(w).Encode(response)
}
 
func main() {
	http.HandleFunc("/", handler)
	http.HandleFunc("/ping", pingHandler)
 
	fmt.Println("Сервер запущен на http://localhost:8080")
	http.ListenAndServe(":8080", nil)
}

Теперь при запросе GET /ping сервер будет возвращать JSON:

{"message": "pong"}

Заключение

Мы создали простой HTTP-сервер на Go, который умеет отвечать на запросы разными маршрутами. Это отличный старт для создания веб-приложений, API или микросервисов. Go обеспечивает высокую производительность, удобство работы и масштабируемость, что делает его отличным выбором для серверной разработки.

Попробуйте добавить в сервер новые маршруты или подключить обработку параметров — и ваш HTTP-сервер станет еще полезнее!

5 минут чтения
Средний рейтинг статьи — 4.8

Настроить мониторинг за 30 секунд

Надежные оповещения о даунтаймах. Без ложных срабатываний