Какие протоколы использовал для общения с frontend

«Какие протоколы использовал для общения с frontend» — вопрос из категории Сети, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В основном REST API (HTTP/JSON) — стандартный выбор для большинства проектов. Используем net/http или фреймворки типа Gin, Echo.

Пример простого эндпоинта:

func main() {
    r := gin.Default()
    r.GET("/api/data", func(c *gin.Context) {
        c.JSON(200, gin.H{"message": "Hello, frontend!"})
    })
    r.Run()
}

Для real-time приложений — WebSocket (gorilla/websocket).

Если нужна эффективность — gRPC (бинарный протокол на HTTP/2). Подходит для внутреннего взаимодействия, но требует генерацию кода через protobuf.

GraphQL (например, с graphql-go) — если фронту нужна гибкость в запросах.

Выбор зависит от требований: простота (REST), скорость (gRPC), гибкость (GraphQL) или real-time (WebSocket).