Как написать HTTP-сервер на Go за 5 минут
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)
}
Этот код выполняет следующие действия:
- Импортирует необходимые пакеты (
fmt
,net/http
). - Определяет обработчик
handler
, который отвечает строкой "Hello, World!". - Регистрирует маршрут
/
и запускает сервер на порту 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-сервер станет еще полезнее!
Настроить мониторинг за 30 секунд
Надежные оповещения о даунтаймах. Без ложных срабатываний