apiary-0.12.4: Simple and type safe web framework that can be automatically generate API documentation.

Safe HaskellNone

Control.Monad.Apiary.Action

Contents

Synopsis

Documentation

data ApiaryConfig Source

Constructors

ApiaryConfig 

Fields

notFound :: Application

call when no handler matched.

defaultStatus :: Status

used unless call status function.

defaultHeader :: ResponseHeaders

initial headers.

rootPattern :: [ByteString]

used by root filter.

mimeType :: FilePath -> ByteString
 
documentationAction :: Documents -> ActionT IO ()
 

actions

stop :: Monad m => ActionT m aSource

stop handler and send current state. since 0.3.3.0.

stopWith :: Monad m => Response -> ActionT m aSource

stop with response. since 0.4.2.0.

getter

getRequest :: Monad m => ActionT m RequestSource

get raw request. since 0.1.0.0.

getHeaders :: Monad m => ActionT m RequestHeadersSource

get all request headers. since 0.6.0.0.

getReqParams :: MonadIO m => ActionT m [Param]Source

parse request body and return params. since 0.9.0.0.

getReqFiles :: MonadIO m => ActionT m [File]Source

parse request body and return files. since 0.9.0.0.

setter

status :: Monad m => Status -> ActionT m ()Source

set status code. since 0.1.0.0.

response header

addHeader :: Monad m => HeaderName -> ByteString -> ActionT m ()Source

add response header. since 0.1.0.0.

setHeaders :: Monad m => ResponseHeaders -> ActionT m ()Source

set response headers. since 0.1.0.0.

modifyHeader :: Monad m => (ResponseHeaders -> ResponseHeaders) -> ActionT m ()Source

modify response header. since 0.1.0.0.

contentType :: Monad m => ContentType -> ActionT m ()Source

set content-type header. if content-type header already exists, replace it. since 0.1.0.0.

response body

file :: Monad m => FilePath -> Maybe FilePart -> ActionT m ()Source

set response body file content and detect Content-Type by extension. since 0.1.0.0.

file' :: Monad m => FilePath -> Maybe FilePart -> ActionT m ()Source

set response body file content, without set Content-Type. since 0.1.0.0.

builder :: Monad m => Builder -> ActionT m ()Source

set response body builder. since 0.1.0.0.

lbs :: Monad m => ByteString -> ActionT m ()Source

set response body lazy bytestring. since 0.1.0.0.

stream :: Monad m => StreamingBody -> ActionT m ()Source

set response body source. since 0.9.0.0.

response :: Monad m => (Status -> ResponseHeaders -> Response) -> ActionT m ()Source

Raw response constructor. since 0.10.

example(use pipes-wai)

 producer :: Monad m => Producer (Flush Builder) IO () -> ActionT m ()
 producer = response (s h -> responseProducer s h)

type StreamingBody = (Builder -> IO ()) -> IO () -> IO ()

Represents a streaming HTTP response body. It's a function of two parameters; the first parameter provides a means of sending another chunk of data, and the second parameter provides a means of flushing the data to the client.

Since 3.0.0

monolithic action

redirect

redirect :: Monad m => ByteString -> ActionT m ()Source

redirect with:

303 See Other (HTTP/1.1) or 302 Moved Temporarily (Other)

since 0.6.2.0.

redirectPermanently :: Monad m => ByteString -> ActionT m ()Source

redirect with 301 Moved Permanently. since 0.3.3.0.

redirectTemporary :: Monad m => ByteString -> ActionT m ()Source

redirect with:

307 Temporary Redirect (HTTP/1.1) or 302 Moved Temporarily (Other)

since 0.3.3.0.

redirectWithSource

Arguments

:: Monad m 
=> Status 
-> ByteString

Location redirect to

-> ActionT m () 

redirect handler

set status and add location header. since 0.3.3.0.

rename from redirect in 0.6.2.0.

Reexport

deprecated

redirectFound :: Monad m => ByteString -> ActionT m ()Source

Deprecated: use redirect

redirect with 302 Found. since 0.3.3.0.

redirectSeeOther :: Monad m => ByteString -> ActionT m ()Source

Deprecated: use redirect

redirect with 303 See Other. since 0.3.3.0.

source :: Monad m => StreamingBody -> ActionT m ()Source

Deprecated: use stream