diff --git a/examples/hello-go/code/greeting.go b/examples/hello-go/code/greeting.go new file mode 100644 index 0000000..c3554c8 --- /dev/null +++ b/examples/hello-go/code/greeting.go @@ -0,0 +1,30 @@ +package code +// Изменено: 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, + } +} diff --git a/examples/hello-go/code/handler.go b/examples/hello-go/code/handler.go deleted file mode 100644 index a82fb99..0000000 --- a/examples/hello-go/code/handler.go +++ /dev/null @@ -1,21 +0,0 @@ -// Создано: 2026-03-11 -// handler.go — пример Go serverless функции. -// Пакет должен называться handler, функция — Handle. -// event содержит тело POST запроса (распарсенный JSON) или метаданные GET (_path, _method, _query). - -package handler - -import "fmt" - -// Handle — точка входа функции. Принимает event как map, возвращает любой тип (сериализуется в JSON). -func Handle(event map[string]interface{}) interface{} { - name, ok := event["name"].(string) - if !ok || name == "" { - name = "world" - } - return map[string]interface{}{ - "message": fmt.Sprintf("Hello, %s! (Go 1.23)", name), - "runtime": "go1.23", - "event": event, - } -}