Hello World
Ihre erste Wippy-Anwendung - eine einfache HTTP-API, die JSON zurückgibt.
Was wir bauen
Eine minimale Web-API mit einem Endpunkt:
GET /hello → {"message": "hello world"}
Projektstruktur
hello-world/
├── wippy.lock # Generierte Lock-Datei
└── src/
├── _index.yaml # Entry-Definitionen
└── hello.lua # Handler-Code
Schritt 1: Projektverzeichnis erstellen
mkdir hello-world && cd hello-world
mkdir src
Schritt 2: Entry-Definitionen
Erstellen Sie src/_index.yaml:
version: "1.0"
namespace: app
entries:
# HTTP-Server
- name: gateway
kind: http.service
addr: :8080
lifecycle:
auto_start: true
# Router
- name: api
kind: http.router
meta:
server: gateway
prefix: /
# Handler-Funktion
- name: hello
kind: function.lua
source: file://hello.lua
method: handler
modules:
- http
# Endpunkt
- name: hello.endpoint
kind: http.endpoint
meta:
router: app:api
method: GET
func: hello
path: /hello
Vier Einträge arbeiten zusammen:
gateway- HTTP-Server lauscht auf Port 8080api- Router an Gateway viameta.serverangebundenhello- Lua-Funktion die Anfragen behandelthello.endpoint- RoutetGET /hellozur Funktion
Schritt 3: Handler-Code
Erstellen Sie 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
}
Das http-Modul bietet Zugang zu Request/Response-Objekten. Die Funktion gibt eine Tabelle mit der exportierten handler-Methode zurück.
Schritt 4: Initialisieren und Ausführen
# Lock-Datei aus Quellen generieren
wippy init
# Runtime starten (-c für farbige Konsolenausgabe)
wippy run -c
Sie sehen Ausgabe wie:
╦ ╦╦╔═╗╔═╗╦ ╦ 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"}
Schritt 5: Testen
curl http://localhost:8080/hello
Antwort:
{"message":"hello world"}
Wie es funktioniert
gatewayakzeptiert die TCP-Verbindung auf Port 8080apiRouter matched den Pfad-Präfix/hello.endpointmatchedGET /hellohelloFunktion wird ausgeführt und schreibt JSON-Antwort
CLI-Referenz
| Befehl | Beschreibung |
|---|---|
wippy init |
Lock-Datei aus src/ generieren |
wippy run |
Runtime aus Lock-Datei starten |
wippy run -c |
Mit farbiger Konsolenausgabe starten |
wippy run -v |
Mit ausführlichem Debug-Logging starten |
wippy run -s |
Im stillen Modus starten (keine Konsolenlogs) |
Nächste Schritte
- Echo-Service - Anfrageparameter behandeln
- Task-Queue - REST-API mit Hintergrundverarbeitung
- HTTP-Router - Routing-Muster