Ответ
В Go транспортный слой обычно реализуется в отдельном пакете/папке, часто называемом:
transportapi(если это HTTP API)grpc(для gRPC)
Пример структуры проекта:
project/
├── internal/
│ ├── transport/
│ │ ├── http/ # HTTP handlers
│ │ ├── grpc/ # gRPC services
│ │ └── ...
├── cmd/
└── ...
Код HTTP-обработчика обычно выглядит так:
// transport/http/user_handler.go
package http
type UserHandler struct {
service user.Service
}
func (h *UserHandler) GetUser(w http.ResponseWriter, r *http.Request) {
// обработка запроса
}
Транспортный слой отвечает за:
- Парсинг входящих запросов
- Валидацию данных
- Преобразование в DTO
- Вызов бизнес-логики (сервисного слоя)