howdy/server

Howdy server, using cowboy as the base server

Types

Messages that are sent the OTP

pub opaque type Message

Returned to the server if the route has a matching template

pub opaque type RequestType

Compiled route stored within the state

pub opaque type Route

Functions

pub fn add_middleware(pid: Sender(Message), middleware: fn(
    fn(Request(BitString)) -> Response(BitBuilder),
  ) -> fn(Request(BitString)) -> Response(BitBuilder)) -> Sender(
  Message,
)

registers middleware for the server

Example

case server.start(routes) {
   Ok(pid) -> {
     pid
     |> server.add_middleware(fn(middleware) {
       middleware
       |> service.prepend_response_header("made-by", "howdy")
       |> service.prepend_response_header("with-love", "howdy team")
     })
     |> server.get_routes()
     erlang.sleep_forever()
   }
   Error(_) -> io.println("Server failed to start")
 }
}
pub fn get_routes(pid: Sender(Message)) -> Sender(Message)

Prints out the registered routes for debugging This will be better formatted when the server is ready for production

pub fn register_routes(pid: Sender(Message), route: Route) -> Sender(
  Message,
)

registers additional routes after the inital routes have been

pub fn start(router: Route) -> Result(Sender(Message), StartError)

starts a new instance of Howdy setting the port number to 3000

pub fn start_with_port(port: Int, router: Route) -> Result(
  Sender(Message),
  StartError,
)

starts a new instance of Howdy and sets the port number