servant-rawm-0.1.0.0: Embed a raw 'Application' in a Servant API

CopyrightDennis Gosnell 2017
LicenseBSD3
MaintainerDennis Gosnell (cdep.illabout@gmail.com)
Safe HaskellNone
LanguageHaskell2010

Servant.RawM

Contents

Description

 

Synopsis

RawM API parameter

data RawM Source #

Instances

Helper functions for writing simple file servers

serveDirectoryWebApp :: Applicative m => FilePath -> ServerT RawM m Source #

Serve anything under the specified directory as a RawM endpoint.

type MyApi = "static" :> RawM

server :: ServerT MyApi m
server = serveDirectoryWebApp "/var/www"

would capture any request to /static/<something> and look for <something> under /var/www.

It will do its best to guess the MIME type for that file, based on the extension, and send an appropriate Content-Type header if possible.

If your goal is to serve HTML, CSS and Javascript files that use the rest of the API as a webapp backend, you will most likely not want the static files to be hidden behind a /static/ prefix. In that case, remember to put the serveDirectoryWebApp handler in the last position, because servant will try to match the handlers in order.

Corresponds to the defaultWebAppSettings StaticSettings value.

serveDirectoryWith :: Applicative m => StaticSettings -> ServerT RawM m Source #

Alias for staticApp. Lets you serve a directory with arbitrary StaticSettings. Useful when you want particular settings not covered by the four other variants. This is the most flexible method.