amber/serve
Types
pub type HttpServer
Values
pub fn addr(of server: HttpServer) -> net_addr.NetAddr
The local address this server is listening on.
pub fn finished(
of server: HttpServer,
) -> promise.Promise(Result(Nil, error.Error))
A promise that resolves once server finishes - eg. when aborted using
the signal passed to ServeOption.Signal.
pub fn serve(
handler: fn(
request.Request,
serve_handler_info.ServeHandlerInfo,
) -> promise.Promise(response.Response),
) -> Result(HttpServer, error.Error)
Serves HTTP requests with the given handler.
Examples
serve.serve(fn(_request, _info) {
promise.resolve(response.new("Hello, world!"))
})
pub fn serve_with(
with options: List(serve_option.ServeOption),
apply handler: fn(
request.Request,
serve_handler_info.ServeHandlerInfo,
) -> promise.Promise(response.Response),
) -> Result(HttpServer, error.Error)
Serves HTTP requests with the given options and handler.
Examples
let assert Ok(server) =
serve.serve_with(
[serve_option.Port(3000), serve_option.Hostname("127.0.0.1")],
fn(_request, _info) {
promise.resolve(response.new("Hello, world!"))
},
)
pub fn shutdown(
server: HttpServer,
) -> promise.Promise(Result(Nil, error.Error))
Gracefully close the server. No more new connections are accepted, while pending requests are allowed to finish.
pub fn unref(server: HttpServer) -> Nil
Make the server not block the event loop from finishing.