Heyy, i try a create something like a dynamic route but i dont know if the approach is correct
import gleam/bytes_builder.{type BytesBuilder}
import gleam/http/elli
import gleam/http/request.{type Request}
import gleam/http/response.{type Response}
import gleam/io
import routes/handle_users.{get_all_users, get_user_by_id}
import gleam/option.{Some, None}
pub fn service(request: Request(t)) -> Response(BytesBuilder) {
case request.path {
"/users" -> get_all_users(request)
"/users/" <> Some(id) -> get_user_by_id(request, id)
_ -> default_service(request)
}
}
pub fn default_service(_request: Request(t)) -> Response(BytesBuilder) {
let body = bytes_builder.from_string("Hello, world!")
response.new(200)
|> response.prepend_header("made-with", "Gleam")
|> response.set_body(body)
}
pub fn main() {
io.print("run on port 8080")
elli.become(service, on_port: 8080)
}
The error happen in Some:
I'm expecting a lowercase name here.