Hello World
Hello World
Заголовок раздела «Hello World»Ваше первое приложение на Wippy — простой HTTP API, возвращающий JSON.
Что создаём
Заголовок раздела «Что создаём»Минимальный веб-API с одним эндпоинтом:
GET /hello → {"message": "hello world"}Структура проекта
Заголовок раздела «Структура проекта»hello-world/├── wippy.lock # Генерируемый lock-файл└── src/ ├── _index.yaml # Определения записей └── hello.lua # Код обработчикаШаг 1: Создание директории проекта
Заголовок раздела «Шаг 1: Создание директории проекта»mkdir hello-world && cd hello-worldmkdir srcШаг 2: Определения записей
Заголовок раздела «Шаг 2: Определения записей»Создайте src/_index.yaml:
version: "1.0"namespace: app
entries: # HTTP-сервер - name: gateway kind: http.service addr: ":8080" lifecycle: auto_start: true
# Роутер - name: api kind: http.router meta: server: app:gateway prefix: /
# Функция-обработчик - name: hello kind: function.lua source: file://hello.lua method: handler modules: - http
# Эндпоинт - name: hello.endpoint kind: http.endpoint meta: router: app:api method: GET func: app:hello path: /helloЧетыре записи работают вместе:
gateway— HTTP-сервер, слушающий порт 8080api— роутер, привязанный к gateway черезmeta.serverhello— Lua-функция, обрабатывающая запросыhello.endpoint— маршрутизируетGET /helloна функцию
Шаг 3: Код обработчика
Заголовок раздела «Шаг 3: Код обработчика»Создайте src/hello.lua:
local http = require("http")
local function handler() local res = http.response()
res:set_content_type(http.CONTENT.JSON) res:set_status(http.STATUS.OK) res:write_json({message = "hello world"})end
return { handler = handler}Модуль http предоставляет доступ к объектам запроса/ответа. Функция возвращает таблицу с экспортируемым методом handler.
Шаг 4: Инициализация и запуск
Заголовок раздела «Шаг 4: Инициализация и запуск»# Генерация lock-файла из исходниковwippy init
# Запуск рантайма (-c для цветного вывода в консоль)wippy run -cВы увидите вывод:
╦ ╦╦╔═╗╔═╗╦ ╦ Adaptive Application Runtime║║║║╠═╝╠═╝╚╦╝ v0.1.20╚╩╝╩╩ ╩ ╩ by Spiral Scout
0.00s INFO run runtime ready0.11s INFO core service app:gateway is running {"details": "service listening on :8080"}Шаг 5: Тестирование
Заголовок раздела «Шаг 5: Тестирование»curl http://localhost:8080/helloОтвет:
{"message":"hello world"}Как это работает
Заголовок раздела «Как это работает»gatewayпринимает TCP-соединение на порту 8080- Роутер
apiсопоставляет префикс пути/ hello.endpointсопоставляетGET /hello- Функция
helloвыполняется и записывает JSON-ответ
Справочник CLI
Заголовок раздела «Справочник CLI»| Команда | Описание |
|---|---|
wippy init | Генерация lock-файла из src/ |
wippy run | Запуск рантайма из lock-файла |
wippy run -c | Запуск с цветным выводом в консоль |
wippy run -v | Запуск с подробным debug-логированием |
wippy run -s | Запуск в тихом режиме (без логов в консоль) |
Следующие шаги
Заголовок раздела «Следующие шаги»- Echo Service — обработка параметров запроса
- Task Queue — REST API с фоновой обработкой
- HTTP-роутер — паттерны маршрутизации