Hello World
Ваше первое приложение на Wippy — простой HTTP API, возвращающий JSON.
Что создаём
Минимальный веб-API с одним эндпоинтом:
GET /hello → {"message": "hello world"}
Структура проекта
hello-world/
├── wippy.lock # Генерируемый lock-файл
└── src/
├── _index.yaml # Определения записей
└── hello.lua # Код обработчика
Шаг 1: Создание директории проекта
mkdir hello-world && cd hello-world
mkdir src
Шаг 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: 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: hello
path: /hello
Четыре записи работают вместе:
gateway— HTTP-сервер, слушающий порт 8080api— роутер, привязанный к gateway черезmeta.serverhello— Lua-функция, обрабатывающая запросыhello.endpoint— маршрутизируетGET /helloна функцию
Шаг 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: Инициализация и запуск
# Генерация lock-файла из исходников
wippy init
# Запуск рантайма (-c для цветного вывода в консоль)
wippy run -c
Вы увидите вывод:
╦ ╦╦╔═╗╔═╗╦ ╦ Adaptive Application Runtime
║║║║╠═╝╠═╝╚╦╝ v0.1.20
╚╩╝╩╩ ╩ ╩ by Spiral Scout
0.00s INFO run runtime ready
0.11s INFO core service app:gateway is running {"details": "service listening on :8080"}
Шаг 5: Тестирование
curl http://localhost:8080/hello
Ответ:
{"message":"hello world"}
Как это работает
gatewayпринимает TCP-соединение на порту 8080- Роутер
apiсопоставляет префикс пути/ hello.endpointсопоставляетGET /hello- Функция
helloвыполняется и записывает JSON-ответ
Справочник 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-роутер — паттерны маршрутизации