30 lines
1.2 KiB
Go
30 lines
1.2 KiB
Go
// Изменено: 2026-03-11
|
|
// greeting.go — пример Go функции: возвращает приветствие.
|
|
//
|
|
// ТРЕБОВАНИЕ РАНТАЙМА: пакет должен называться handler, точка входа — Handle.
|
|
// Вся бизнес-логика — в отдельных функциях с нормальными именами.
|
|
|
|
package handler
|
|
|
|
import "fmt"
|
|
|
|
// buildGreeting — формирует текст приветствия для указанного имени гостя.
|
|
func buildGreeting(guestName string) string {
|
|
return fmt.Sprintf("Hello, %s! (Go 1.23)", guestName)
|
|
}
|
|
|
|
// Handle — точка входа, вызывается рантаймом на каждый запрос/событие.
|
|
// Не переименовывать: это жёсткий контракт рантайма (server.go вызывает handler.Handle).
|
|
func Handle(event map[string]interface{}) interface{} {
|
|
guestName, ok := event["name"].(string)
|
|
if !ok || guestName == "" {
|
|
guestName = "world"
|
|
}
|
|
|
|
return map[string]interface{}{
|
|
"message": buildGreeting(guestName),
|
|
"runtime": "go1.23",
|
|
"event": event,
|
|
}
|
|
}
|