Responses
Mantis provides a simple way to return responses to clients.
HTML Responses
Return HTML content using response.html()
:
v
module main
import khalyomede.mantis.http { create_app, App, Response }
import khalyomede.mantis.http.route
fn main() {
app := create_app(
routes: [
route.get(
name: "index"
path: "/"
callback: fn (app App) !Response {
return app.response.html(content: "hello world")
}
)
]
)
app.serve() or { panic(err) }
}
Status Codes
Set HTTP status codes using the status
field:
v
module main
import khalyomede.mantis.http { create_app, App, Response, Status }
import khalyomede.mantis.http.route
fn main() {
app := create_app(
routes: [
route.post(
name: "post.store"
path: "/post"
callback: fn (app App) !Response {
return app.response.html(
content: "Post created successfully"
status: .created
)
}
)
]
)
app.serve() or { panic(err) }
}
Headers
Add custom headers to your response:
v
module main
import khalyomede.mantis.http { create_app, App, Response }
import khalyomede.mantis.http.route
fn main() {
app := create_app(
routes: [
route.get(
name: "cache.example"
path: "/cached-page"
callback: fn (app App) !Response {
return app.response
.html(content: "This page is cached")
.set_header("Cache-Control", "max-age=3600")
}
)
]
)
app.serve() or { panic(err) }
}
Redirects
Redirect users to another URL:
v
module main
import khalyomede.mantis.http { create_app, App, Response }
import khalyomede.mantis.http.route
fn main() {
app := create_app(
routes: [
route.get(
name: "profile"
path: "/profile"
callback: fn (app App) !Response {
return app.response.redirect(path: "/login")
}
)
]
)
app.serve() or { panic(err) }
}
You can also add query parameters:
v
import khalyomede.mantis.http { create_app, App, Response }
import khalyomede.mantis.http.route
fn main() {
app := create_app(
routes: [
route.get(
name: "admin"
path: "/admin"
callback: fn (app App) !Response {
return app.response.redirect(path: "/login", queries: {
'return_to': '/admin'
})
}
)
]
)
app.serve() or { panic(err) }
}