v3.5.0Stable: Rust/Axum
Schnellstart
In wenigen Minuten zur ersten API mit Velisch 3.5.0 und dem Befehl velin. Stabiler Laufzeitpfad: Rust/Axum.
5-Minuten-Pfad
Stable 3.5.0
Velisch ist die Sprache, VelinScript der Compiler (
velin). Weitere Targets und erweiterte Auth/AI liegen außerhalb dieses Stable-Umfangs.Installieren und Version prüfen
.\install.ps1 -Prefix "$PWD\bin" -SourceRepo "." $env:PATH = "$PWD\bin;$env:PATH" velin --versionProjekt erstellen
velin new my-api cd my-apiErzeugt main.velin, Cargo.toml und ein lauffähiges src/main.rs.
Optional anpassen, dann kompilieren
@GET("/api/hello") fn hello(): string { return "Hello, VelinScript!"; }velin compile -i main.velin -o src/main.rsPrüfen
velin check -i main.velinStarten
cargo runGET http://127.0.0.1:3000/api/hello (oder PORT=18080 cargo run).
Tutorial 1: Velisch Basics
Lernen Sie die Grundlagen der Sprache: Variablen, Typen und Kontrollstrukturen.
// Type Inference
let name = "John";
let age = 30;
let active = true;
// Explizite Typen
let email: string = "john@example.com";
let score: number = 95.5;
let isAdmin: boolean = false;
// Mutable Variablen
let mut counter = 0;
counter = counter + 1;Tutorial 2: REST API Entwicklung
Velisch macht die API-Entwicklung intuitiv durch den Einsatz von Decorators.
@GET("/api/hello")
fn hello(): string {
return "Hello, Velisch!";
}
@POST("/api/users")
fn createUser(name: string, email: string): User {
let user = User {
id: generateId(),
name: name,
email: email,
};
return db.save(user);
}
@GET("/api/users/:id")
fn getUser(id: string): User {
return db.find(User, id);
}Beispiel: Calculator API
@GET("/api/calc/add")
fn add(a: number, b: number): number {
return a + b;
}
@POST("/api/calc/calculate")
fn calculate(operation: string, a: number, b: number): Calculation {
let result: number;
match (operation) {
"add" => result = a + b,
"subtract" => result = a - b,
"multiply" => result = a * b,
"divide" => result = b != 0 ? a / b : 0,
_ => result = 0,
}
return db.save(Calculation {
id: generateId(),
operation: operation,
operand1: a,
operand2: b,
result: result,
timestamp: getCurrentTimestamp(),
});
}Vollständiges CRUD Beispiel
struct User {
id: string,
name: string,
email: string,
role: string,
}
@GET("/api/users")
fn getUsers(): List<User> {
return db.findAll(User);
}
@POST("/api/users")
fn createUser(name: string, email: string): User {
return db.save(User {
id: generateId(),
name: name,
email: email,
role: "user",
});
}
@PUT("/api/users/:id")
fn updateUser(id: string, name: string): User {
let user = db.find(User, id);
user.name = name;
return db.save(user);
}
@DELETE("/api/users/:id")
fn deleteUser(id: string): void {
db.delete(User, id);
}